#define SDL_clamp(x, a, b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)))
| x | 比較する値 | |
| a | 値の下限 | |
| b | 値の上限 |
aとbの間に収められたxを戻す.
xがaからbの範囲外の場合, 戻される値はaまたはbになる. そうでないとき, xが戻される.
bがaより小さい場合, 正しくない結果が生じる.
これは比較を直接記述するよりも明瞭な補助的なマクロで, <と>で比較できる全ての型で使用できる. しかし, 全ての引数で2重評価を行っており, 副作用の生じる式を使用してはならない.
このマクロはどのスレッドからも安全に呼べる.