C++のboolの配列とunsigned char
フラグの配列を使いたいときに, "bool flags[8]"などとする代わりに"unsigned char"を使ってビット演算した方が良いという話. 本当かどうかは知らないがちょっと面白かったのでメモ.
unsigned char flags; (flags & 1); // return 1st bit (the 1st flag) (flags & 2); // 2nd (flags & 4); // 3rd flags |= 4; // assign true to the 3rd flag flags ^= 4; // toggle the 3rd flag // assign true to all flags long b = 1; for (long i = 0; i < 8; ++i) { flags |= b; b <<= 1; // left shift. double b }
http://cboard.cprogramming.com/cplusplus-programming/3725-array-boolean.html
http://www9.plala.or.jp/sgwr-t/c/sec14.html