typedef union {
struct {
union {
struct {
unsigned int dev_t : 4; // Device Type, see DEV_type_t
unsigned int dev_n : 7; // Device Number
};
unsigned int id : 11; // CAN_ID
};
unsigned int online : 1;
unsigned int reserved : 4;
}; // 16 bit total
uint16_t _raw;
} CAN_prefix_t;
После компиляции sizeof(CAN_prefix_t)
показывает 3 bytes
, но ожидается, что будет 2 bytes
(11+1+4 bits or 4+7+1+4 bits = 16 bits)
.
Может ли кто-нибудь посоветовать, как правильно определить структуру/объединение выше?
Заранее спасибо!