Je commençais à être un peu confus avec typedef/enum jusqu'à ce que je réalise que je n'avais pas besoin de nommer l'emun. Y a-t-il des différences/avantages entre ces deux lorsqu'il est utilisé avec typedef, le 2ème me semble beaucoup plus facile à comprendre.unnamed enum & typedef?
Premier exemple:
typedef enum enumMenuItems {
none,
add,
save,
load,
list,
remove
} menuItems;
menuItems optionSelect = none;
Deuxième exemple:
typedef enum {
Earth = 1,
Mars,
Saturn,
Neptune,
Jupiter
} planets;
planets closest = Mars;
.
EDIT:
typedef enum enumMenuItems {
none,
add,
save,
load,
list,
remove
} menuItems;
Ainsi, le ci-dessus définit essentiellement deux types, l'un appelé enumMenuItems une énumération et la seconde un typedef de enumMenuItems appelé menuItems. Les deux déclarations ci-dessus sont essentiellement les mêmes, l'une utilisant typedef et l'autre utilisant l'énumération. Donc, si vous utilisez un typedef, vous pouvez laisser votre énumération sans nom car le type peut être consulté via le menu typedef menuItem.
gary
Je suis un peu confus par votre édition, la mise en page n'est pas seulement une question de style ou de préférence personnelle? – fuzzygoat
Bien sûr, je voulais juste mieux différencier entre la déclaration et l'utilisation des énumérations. NBD. –
Les commentaires de votre montage semblent fondamentalement corrects. Il y a des arguties sémantiques, mais en pratique, je ne pense pas que cela ait de l'importance. –