почему заполнение не происходит в этом случае?

Насколько мне известно, по умолчанию будет выполнено выравнивание по 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 не будут выравниваться кратно двум, верно??

Спасибо.

13
задан Jeyaram 2 August 2012 в 07:10
поделиться