Каково выравнивание упакованной структуры в C?

Возьмите следующую структуру:

struct s {
  char c; // 1 byte
  long l; // 8 bytes
};

C добавил бы 7 байтов заполнения c а также l, делая размер структуры 16 и выравнивание структуры 8. Если я сказал компилятору упаковать структуру, как оценивается выравнивание? Это просто сдаться и сделать выравнивание 1 байт?

РЕДАКТИРОВАТЬ:

Этот вопрос не является дубликатом заполнения и упаковки структуры. Я спрашиваю, как оценивается выравнивание упакованной структуры. Не то, как выполняется заполнение, или как оценивается выравнивание обычной структуры. Если вышеупомянутая структура дополнена, она имеет размер 16 и выравнивание 8- выравнивание ее самого большого элемента (long). Если он упакован, он имеет размер 9 байтов и выравнивание ? байт.

0 ответов

Другие вопросы по тегам