Цитата
Вот так будет лежать ваша структура в памяти
first и second ляжут в 1 байт, потом будет ити pad, так как следующая переменная int котороя требует ваыравнивания отсюда и pad,
third - зеймет 2 байта далее forth и fifth которые тоже ляжут в 1 байт, но заними опять int перед которым будет pad.
sixth - зеймет 2 байта за ним sevnth и eighth.
Считаем: 1+PAD+2+1+PAD+2+1+PAD = 10
Спасибо MALLOY2, понял!
Ну так а почему выравнивание почётным адресам происходит?
Цитата
CPU 16 битное по этому все структуры по умолчанию выравниваются к 16 битам, если поставите #pragma pack(1) получите размер 7 байт, если поставите #pragma pack(2), будет такойде размер, так как компилятор выравнивает к такому значению по умолчанию.
Спасибо понял.