- Элементы структуры должны быть правильно выровнены, поэтому структура может быть дополнена неиспользуемыми байтами.
- Размер структуры всегда один и тот же (поскольку это постоянное выражение).
Так что я полагаю, компилятор должен каким-то образом использовать тот же отступы каждый раз, когда такие, как:Является ли заполнение в структурах одинаковым?
- размещения одного STRUCT экземпляра
- передавая экземпляр структуры по значению функции
- возвращающая-структуру экземпляр по значению от функции
- в массиве структур
Если я прав с этой презумпцией, не могли бы вы указать мне, что говорит C-стандарт? Существуют ли какие-либо строгие правила для размещения дополнений, которые гарантируют это свойство?
Do вы имеете в виду «Все ли экземпляры структуры в одной программе имеют один и тот же макет»? –
Задание и выравнивание определяются реализацией. Он может варьироваться между компиляторами и даже между одним и тем же компилятором на разных платформах. –
Теоретически макет может меняться между различными прогонами программы –