>>357
Cのbitフィールドつかえってことだろ! それぐらいおれでもわかったぞ。

#define MASK_I_FOOBAR 0x04
#define MASK_I_BARFOO 0x10
...とか30個ぐらいあって、
else if ((foo & MASK_I_FOOBAR) == MASK_I_FOOBAR)
func(a);
else if ((foo & MASK_I_BARFOO) == MASK_I_FOOBAR)
...なんて書いてもコンパイラーはエラー出してくれないんですよ! (あたりまえ)


1bitなら、シフトする方法もつかえるが、まあ2bit以上の場合もかんがえれば、
andとって比較だろうな。

で、1bitの場合なんかは、bitフィールドつかったときの効果が大きい
(すごくみやすくなる)