typedef struct
{
char Data1;
int Data2;
unsigned short Data3;
char Data4;
}SampleStruct;
Почему у нас нет байтов заполнения (2) после короткого беззнакового Data3, так как выравнивание соответствует выравниванию самого большого элемента Data2 (4 байта).Таким образом, логически размер структуры должен составлять 13, а не 12 байт с 5 байтами заполнения.