0
我想滿足一些位域爲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
然而,的sizeof DSTEntry始終是5,allthough所有位的總和是24 我使用gcc 5.3.0。
解決方案:不要使用位字段。他們被語言設計所打破。 – Lundin
如果你使用'uint16_t'而不是'uint8_t',那麼尺寸將下降到4.我認爲你沒有機會把它降到3。 –
無法重現。 – luoluo