Je suis en train de tenir quelques bitfields dans un 3 octets structstructure à taille bizarre avec bitfields
#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
Cependant, sizeof DSTEntry est toujours 5, allthough la somme de tous les bits est 24. J'utilise gcc 5.3.0.
Solution: n'utilisez pas de champs binaires en premier lieu. Ils sont brisés par la conception du langage. – Lundin
Si vous utilisez 'uint16_t' au lieu de' uint8_t', alors la taille passera à 4. Je pense que vous n'avez aucune chance de l'abaisser à 3 cependant. –
Impossible de reproduire. – luoluo