08/05/04 11:10:44
>>295
unsigned とかやってるとサイズが4バイトになるから
union bits{
char ch;
struct{
unsigned char a:1, b:1, c:1, d:1, e:1, f:1, g:1, h:1;
};
} bits;
にしないとマズいかもしれない。
ただ、ビットフィールドを含む構造体のサイズは処理系依存なので難しい所だが。
さらに言えばビットフィールドのビットがどちら側から埋められるかは処理系依存だから、
union bits{
char ch;
struct{
#ifdef BITFIELD_LITTLE_ENDIAN
unsigned char h:1, g:1, f:1, e:1, d:1, c:1, b:1, a:1;
#else
unsigned char a:1, b:1, c:1, d:1, e:1, f:1, g:1, h:1;
#endif
};
} bits;
として処理系ごとに切り替えられるようにするのが良い。