Разъяснение о семантике упорядочения битовых полей в C

У меня проблемы с пониманием точного значения параграфа проекта стандарта C99 (N1256) о битовых полях (6.7.2.1:10):

6.7.2.1 Структура и объединение спецификаторов

[...]

Семантика

[...]

Реализация может выделить любую адресуемую единицу хранения, достаточно большую, чтобы содержать битовое поле. Если остается достаточно места, битовое поле, которое следует сразу за другим битовым полем в структуре, должно быть упаковано в смежные биты той же единицы. Если остается недостаточно места, определяется ли битовое поле, которое не умещается, в следующем блоке или перекрывает смежные блоки, определяется реализацией.Порядок распределения битовых полей в блоке (от старшего к младшему или от младшего к старшему) определяется реализацией. Выравнивание адресуемой единицы хранения не определено.

Подчеркнутое предложение расширяет мои знания английского языка до предела: я нене понимаю, относится ли это к отдельным битовым полям внутри блока или к порядку битов внутри отдельных битовых полей или к чему-то еще.

Я попытаюсь прояснить мои сомнения на примере. Позволять'Предполагается, что целые числа без знака являются 16 битами, что реализация выбирает целое число без знака как адресуемую единицу хранения (и что байты имеют ширину 8 бит), и никаких других проблем выравнивания или заполнения не возникает:

struct Foo {
    unsigned int x : 8;
    unsigned int y : 8;
};

таким образом, предполагаяx а такжеy поля хранятся внутри одного блока, что определяется реализацией согласно этому предложению? Насколько я понимаю, это означает, что внутри этого неподписанного блока int,x может храниться либо по более низкому адресу, чемy или наоборот, но яЯ не уверен, так как я интуитивноМожно подумать, что если никакие битовые поля не перекрываются с двумя базовыми блоками хранения, порядок объявления наложит такой же порядок для базовых битовых полей.

ЗаметкаБоюсь, что яЯ пропускаю некоторые терминологические тонкости здесь (или, что еще хуже, некоторые технические), но я не могне понимаю, что.

Любой указатель оценен. Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос