Esclarecimento sobre a semântica de ordenação de campo de bits em C

Eu tenho problemas para entender o significado exato de um parágrafo do padrão de esboço C99 (N1256) sobre campos de bits (6.7.2.1:10):

6.7.2.1 Especificadores de estrutura e união

[...]

Semântica

[...]

Uma implementação pode alocar qualquer unidade de armazenamento endereçável grande o suficiente para manter um campo de bits. Se houver espaço suficiente, um campo de bits que segue imediatamente outro campo de bits em uma estrutura deve ser empacotado em bits adjacentes da mesma unidade. Se houver espaço insuficiente, se um campo de bits que não se encaixa é colocado na unidade seguinte ou sobrepõe-se a unidades adjacentes é definido pela implementação.A ordem de alocação de campos de bits dentro de uma unidade (ordem alta para ordem baixa ou ordem baixa para ordem alta) é definida pela implementação. O alinhamento da unidade de armazenamento endereçável não é especificado.

A frase enfatizada estica minhas habilidades em inglês até o limite: não entendo se se refere a campos de bits individuais dentro de uma unidade ou a pedidos de bits dentro dos campos de bits individuais ou a qualquer outra coisa.

Vou tentar deixar minha dúvida mais clara com um exemplo. Vamos supor que ints não assinados sejam de 16 bits, que a implementação escolha um int não assinado como a unidade de armazenamento endereçável (e que os bytes tenham 8 bits de largura) e nenhum outro problema de alinhamento ou preenchimento ocorra:

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

assim, assumindox ey campos são armazenados dentro da mesma unidade, o que é definido pela implementação de acordo com essa sentença? Pelo que entendi, isso significa que dentro dessa unidade int não assinada,x pode ser armazenado em um endereço menor do quey ou vice-versa, mas não tenho certeza, pois intuitivamente eu pensaria que, se nenhum campo de bit se sobrepuser a duas unidades de armazenamento subjacentes, a ordem de declaração imporia a mesma ordem para os campos de bits subjacentes.

Nota: Receio que esteja faltando alguma sutileza terminológica aqui (ou, pior, alguma técnica), mas não consegui entender qual.

Qualquer ponteiro apreciado. Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion