Как мне известно, по умолчанию будет выполнено 4-байтовое выравнивание. говорят
typedef struct
{
int data7;
unsigned char data8;
//3 -bytes will be added here.
}Sample1;
поэтому sizeof(Sample1)
будет 8.
Но для следующей структуры, почему заполнение не произошло?.
typedef struct
{
unsigned char data1;
unsigned char data2;
unsigned char data3;
unsigned char data4;
unsigned char data5;
unsigned char data6;
}Sample2;
Но sizeof (Sample2) равен 6. Этот Sample2 не является 4-байтовой выровненной структурой?
ИЗМЕНИТЬ::
Согласно Wiki
Согласование данных означает перенос данных со смещением памяти, равным нескольким кратным размеру слова, что увеличивает производительность системы из-за того, как процессор обрабатывает память.
Но члены Sample2 не будут выровнены по краям двух правильных
Спасибо.