ビットフィールドの概念を理解しようとしていました。しかし、CASE III の次の構造体のサイズが 8 バイトになる理由がわかりません。
ケース I:
struct B
{
unsigned char c; // +8 bits
} b;
sizeof(b); // 出力: 1 (私のシステムでは unsigned char が 1 バイトを占めるため)
ケース II:
struct B
{
unsigned b: 1;
} b;
sizeof(b); // Output: 4 (because unsigned takes 4 bytes on my system)
ケース III:
struct B
{
unsigned char c; // +8 bits
unsigned b: 1; // +1 bit
} b;
sizeof(b); // Output: 8
ケース III の出力が 8 になる理由がわかりません。1(char) + 4(unsigned) = 5 と予想していました。