Syntaxe :
enum nom {liste-des-noms} liste-des-variables;
Le mot-clef enum
est utilisé pour créer un type énuméré nommé nom
composé
des éléments liste-des-noms
. La liste-des-variables
est facultative, et peut
être utilisée pour créer des instances du type au moment de sa déclaration.
Par exemple, le code ci-dessous créée un type énuméré pour plusieurs couleurs :
enum ColorT {rouge, orange, jaune, vert, bleu, indigo, violet}; ... ColorT c1 = indigo; if (c1 == indigo) { cout << "c1 est indigo" << endl; }
Dans cet exemple, l'effet de l'énumération est d'introduire plusieurs nouvelles
constantes appelées rouge
, orange
, jaune
, etc. Par défaut, ces constantes
prennent les valeurs entières à partir de zéro. Vous pouvez modifier les valeurs de
ces constantes, comme dans l'exemple ci-dessous :
enum ColorT {rouge = 10, blue = 15, vert}; ... ColorT c = vert; cout << "c est " << c << endl;
Lors de l’exécution, ce code produira l'affichage suivant :
c est 16
Remarquez que les exemples précédents ne fonctionneront qu'avec un compilateur réglé
en C++. Avec un compilateur C standard, vous devrez spécifier le mot-clef enum
à chaque création d'instance du type :
enum ColorT {rouge = 10, blue = 15, vert}; ... enum ColorT c = vert; /* remarquez la présence du mot-clef enum */ printf("c est %d\n", c);
Pour pouvoir utiliser les énumération de la même manière qu'en C++, il suffit de
rajouter le mot-clef typedef
:
typedef enum ColorT {rouge = 10, blue = 15, vert} ColorT; ... ColorT c = vert; /* plus besoin du mot-clef enum */ printf("c est %d\n", c);