struct объединяет поля; компилятор вставляет padding для выравнивания — sizeof может превышать сумму полей.
Разбор
- Порядок полей влияет на размер.
packed уменьшает padding ценой доступа.
- Для протоколов фиксируйте layout/endian.
offsetof помогает отладке.
Пример
struct S{char c; int i;}; // часто 8 байт
Итог
Padding учитывайте в sizeof, сериализации и DMA.