指定したビットだけ反転させたい!

 という時は、


// このビットを反転させたい!
#define SET_FLAGS 0x0100

// フラグを確保しておくバッファ
int flags = 0x0000;

...

// ビット反転
// XOR大活躍
flags ^= SET_FLAGS;

...

とやればいいみたい。





 僕は、ずっと


...

if( flags & SET_FLAGS )
{
flags &= ~SET_FLAGS;
}
else
{
flags |= SET_FLAGS;
}
...

てな具合にやってましたが…(汗)



 …あ、「ビットフィールド使えよ」というのは無しの方向で…(苦笑)