размер структуры, содержащей битовые поля [дубликаты]

Possible Duplicate:
Why isn't sizeof for a struct equal to the sum of sizeof of each member?

Я пытался понять концепцию битовых полей. Но я не могу найти, почему размер следующей структуры в CASE III составляет 8 байт.

CASE I:
struct B    
{
    unsigned char c;  // +8 bits
} b;

SizeOf (б); // Вывод: 1 (потому что беззнаковый символ занимает 1 байт в моей системе)

CASE II:
struct B
{
    unsigned b: 1;
} b;

 sizeof(b); // Output: 4 (because unsigned takes 4 bytes on my system)
CASE III:
struct B
{
    unsigned char c;  // +8 bits
    unsigned b: 1;    // +1 bit
} b;

sizeof(b); // Output: 8 

Я не понимаю, почему выходные данные для случая III получаются как 8. Я ожидал 1 (символ) + 4 (без знака) = 5.

Ответы на вопрос(6)

Ваш ответ на вопрос