Détails
Comment définir un type énuméré (enum) en C ?
Je ne sais pas quelle est la syntaxe correcte pour utiliser les enums en C. J'ai le code suivant :
enum {RANDOM, IMMEDIATE, SEARCH} strategy;
strategy = IMMEDIATE;
Mais il ne compile pas, avec l'erreur suivante :
error: conflicting types for ‘strategy’
error: previous declaration of ‘strategy’ was here
Qu'est-ce que je fais de mal ?
262
3
La déclaration d'une variable enum se fait comme suit :
Cependant, vous pouvez utiliser un
typedef
pour raccourcir les déclarations de variables, comme ceci :Avoir une convention de dénomination pour distinguer les types et les variables est une bonne idée :
Quand vous dites
vous créez une variable d'instance unique, appelée 'stratégie' ; d'un enum sans nom. Ce n'est pas une chose très utile à faire - vous avez besoin d'un typedef :
Il convient de mentionner que en C++ vous pouvez utiliser "enum" ; pour définir un nouveau type sans avoir besoin d'une déclaration typedef.
Je trouve cette approche beaucoup plus conviviale.
[edit - clarifié le statut de C++ - j'avais ceci à l'origine, puis je l'ai enlevé].