Насколько мне известно, по умолчанию будет выполнено выравнивание по 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;
Но размер (Sample2 )всего 6. Этот Sample2 не является 4-байтовой выровненной структурой?
РЕДАКТИРОВАТЬ::
Согласно Вики
Выравнивание данных означает размещение данных со смещением в памяти, равным некоторому кратному размеру слова, что повышает производительность системы благодаря тому, как ЦП обрабатывает память.
Но члены Sample2 не будут выравниваться кратно двум, верно??
Спасибо.