我正在尝试将一些位域放入 3 字节结构中
#pragma pack(push, 1)
typedef struct _DSTEntry {
uint8_t reserved :6;
uint8_t startMonth:4;
uint8_t startDay:5;
uint8_t endMonth:4;
uint8_t endDay:5;
} __attribute__((packed)) DSTEntry;
#pragma pop
但是,DSEntry 的 sizeof 始终为 5,尽管所有位的总和为 24。我使用的是 gcc 5.3.0。