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.