ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
12 мая
1011547 Топик полностью
RxTx (11.06.2020 15:17, просмотров: 464) ответил IBAH на Как сделать упакованную структуру, с размером кратным 4? Чтоб автоматически выравнивало. Сейчас после добавления нового элемента в структуру, выравниваю размер ручками и боюсь накосячить...
Чтобы быть уверенным можно использовать assert на кратный размер структуры. assert(sizeof(mydata) % 4 == 0); 

Задавай конкретный гарантированный размер включая байты (массив из байт в fake части union) именно вручную. И "упаковку" тоже задавай именно вручную. Не надо магии. Везде так сделано. Оставь включенным и выравнивание и не трогай атрибуты упаковки. Просто формируй структуру руками, компилятор добивает padding байты только там, где они должны появиться.

Спасибо, князь. Вы настоящий дворянин. И программист.