Jupiter, для битовых полей определёнными являются только
int,
signed int и
unsigned int
C89(draft)
3.5.2.1 Structure and union specifiers
...
A bit-field may have type int , unsigned int , or signed int .
Whether the high-order bit position of a ``plain'' int bit-field is
treated as a sign bit is implementation-defined. A bit-field is
interpreted as an integral type consisting of the specified number of
bits.

Сообщение от
fenix117
который может принимать только значения от 1 до 4 и выделять под него 2 бита
C |
1
| struct int_type { unsigned int val : 2; }; |
|
занимать она будет не два бита, а
sizeof(unsigned int)