06/05/21 06:53:40
>>59
#define BIT(n) (1u << (n))
というマクロがあるとする。
これを、n を静的な定数に制限する代わりに
静的に n の値をチェックしてくれるようにしたいとする。
こういう場合にこのタイプの SASSERT が使える。
#define SBIT(n) (SASSERT(0 <= (n) && (n) < CHAR_BIT * sizeof (unsigned)), 1u << (n))
静的だから n に副作用はないから
n が複数出る事に問題は無い。