tamaño de una estructura que contiene campos de bits [duplicado]

Posible duplicado:
¿Por qué no es sizeof para una estructura igual a la suma de sizeof de cada miembro?

Estaba tratando de entender el concepto de campos de bits. Pero no puedo encontrar por qué el tamaño de la siguiente estructura en CASE III está saliendo como 8 bytes.

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

tamaño de (b); // Salida: 1 (porque el carácter sin signo toma 1 byte en mi sistema)

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

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

sizeof(b); // Output: 8 

No entiendo por qué la salida para el caso III viene como 8. Esperaba 1 (char) + 4 (sin signo) = 5.

Respuestas a la pregunta(6)

Su respuesta a la pregunta