0
I는 DSTEntry 항상 5는 sizeof 모든 비트의 합 allthough,이상한 크기의 구조
#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
그러나 3 바이트 구조체에 약간의 비트 필드에 맞도록 시도하고있다 gcc 5.3.0. 이 구조의 요소를 재 배열 할 수있는 자유가있는 경우
해결책 : 처음에는 비트 필드를 사용하지 마십시오. 언어 디자인에 의해 깨졌습니다. – Lundin
'uint8_t' 대신에'uint16_t'을 사용하면 크기는 4로 떨어질 것입니다. 당신이 3으로 내려갈 기회가 없다고 생각합니다. –
재생할 수 없습니다. – luoluo