rozmiar struktury zawierającej pola bitów [duplikat]

Możliwy duplikat:
Dlaczego sizeof dla struktury nie jest równy sumie wielkości każdego członka?

Próbowałem zrozumieć pojęcie pól bitowych. Ale nie jestem w stanie stwierdzić, dlaczego rozmiar następującej struktury w CASE III wychodzi jako 8 bajtów.

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

sizeof (b); // Wyjście: 1 (ponieważ unsigned char zajmuje 1 bajt w moim systemie)

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

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

sizeof(b); // Output: 8 

Nie rozumiem, dlaczego wyjście dla przypadku III ma wartość 8. Spodziewałem się 1 (znak) + 4 (znak bez znaku) = 5.

questionAnswers(6)

yourAnswerToTheQuestion