размер структуры, содержащей битовые поля [дубликаты]
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.