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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.