fk0, легенда (26.07.2020 17:23, просмотров: 552) ответил RxTx на А знаешь почему не описывается? Сям (компилеру и стандарту) просто
чхать, какая там структура. Осознай это. Упакованная, не
упакованная - именно сишечке по барабану. Осознай: требования по
default data alignment (вообще по типам, не только выравнивание, но
и размер) оно существует только для конкретной CPU платформы, не у
компилятора. И padding (выравнивание) структур делает не компилятор
следующий стандарту C, а бэкенд, именно он отвечает за платформу,
ее выравнивание,
В пятый раз повторяю, компилятор знает и используют такое понятие
как alignof/alignas для любого типа данных, у gcc есть расширение
-- атрибут __attribute__((aligned(N))), по аналогии с typeof() есть
__alignof __(type) (в голом C, без C++). В голом C на него можно
нарваться через generics, через sizeof() тоже можно если
постараться. Именно что платформо-независимый генератор кода уже
всем этим оперирует. Отнюдь не бэкенд.
[ZX]