LINUX.ORG.RU

Память для структуры


0

0
Товарищи, почему структура struct xxx { int a1; char x1; char x2; char x3; char x4; char x5; }; занимает 12 байт, хотя по идее должна 4+1+1+1+1+1=9 байт. Если убираем int или один char, то все становится логичным. Вообщем как-то память отводится нелогично, как под два интегера. Вообщем такое ощущение, что выделенная память выравнивается по наибольшему элементу в структуре. Никогда не замечал такого. ОС freebsd 5
anonymous
Вопрос снимается... __attribute__ ((packed)) решил проблему
anonymous
()
по 4 байтам выравнивается для ускорения.
fghj ★★★★★
()
Машинное слово 4 байта в Intel архитектуре.
Смещение по границе машинного слова.
Можно паковать и вручную.
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.