我试图理解位域的概念。但我无法找到为什么 CASE III 中以下结构的大小为 8 个字节。
案例一:
struct B    
{
    unsigned char c;  // +8 bits
} b;
大小(b);// 输出:1(因为 unsigned char 在我的系统上占用 1 个字节)
案例二:
struct B
{
    unsigned b: 1;
} b;
 sizeof(b); // Output: 4 (because unsigned takes 4 bytes on my system)
案例三:
struct B
{
    unsigned char c;  // +8 bits
    unsigned b: 1;    // +1 bit
} b;
sizeof(b); // Output: 8 
我不明白为什么案例 III 的输出为 8。我期待 1(char) + 4(unsigned) = 5。