Por que o preenchimento não está acontecendo neste caso?

Conforme meu conhecimento, por padrão, o alinhamento de 4 bytes será feito. dizer

typedef struct
{
     int data7;  
     unsigned char data8;
     //3 -bytes will be added here.
}Sample1;

assimsizeof(Sample1) será 8.

Mas, para a estrutura a seguir, por que o preenchimento não aconteceu?

typedef struct
{
     unsigned char data1;
     unsigned char data2;
     unsigned char data3;
     unsigned char data4;
     unsigned char data5;
     unsigned char data6;

}Sample2;

Mas o tamanho de (Sample2) é apenas 6. Esta amostra2 não é uma estrutura alinhada de 4 bytes?

EDITAR::

Conforme Wiki

Alinhamento de dados significa colocar os dados em um deslocamento de memória igual a um múltiplo do tamanho da palavra, o que aumenta o desempenho do sistema devido à maneira como o processador manipula a memória.

Mas membros do Sample2 não serão alinhados em múltiplos de dois certos ??

Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion