Подскажите пожалуйста, как можно заставить компилятор gcc под x86 считать самое верхнее битовое поле в структуре старшим, а не младшим битом? Условная компиляция не подходит, потому что структур с битовыми полями очень много! Поиск в интернете показал, что была опция для реверса битовых полей, но для gcc < 4 версии.
Это зачем такое понадобилось? Хранятся они неопределённо.
C89 (draft)
3.5.2.1 Structure and union specifiers
...
An implementation may allocate any addressable storage unit large
enough to hold a bit-field. If enough space remains, a bit-field that
immediately follows another bit-field in a structure shall be packed
into adjacent bits of the same unit. If insufficient space remains,
whether a bit-field that does not fit is put into the next unit or
overlaps adjacent units is implementation-defined. The order of
allocation of bit-fields within a unit (high-order to low-order or
low-order to high-order) is implementation-defined. The alignment of
the addressable storage unit is unspecified.
Александр: ага, в том-то и дело, что в коде может где-нибудь использоваться знак. Битовые поля не ограничены единичной длиной и могут хранить небольшие числа.