Notions de bases en C

Les énumérations 

Le type énumération est un cas particulier de type entier qui peut être crée avec une plage de valeurs limitée. Chaque valeur constante est représentée par un identificateur utilisable avec des variables du même type énuméré.

Propriétés :

  • Les constantes figurant dans la déclaration d’un type énumération sont des entiers ordinaires ;
  • Une variable de type énuméré peut prendre n’importe quelle valeur entière ;
  • L’utilisation des valeurs négatives est possible;
  • Une même valeur peut être attribuée à deux identificateurs différents.

Déclaration d’un type énumération :

Syntaxe :

enum nomType { id0, id1,…, idN } ;

Le compilateur affectera à :

id0 la valeur 0, id1 la valeur 1,…etc, idN la valeur N.

Exemple :

enum jourSemaine { dim, lun, mar, mer, jeu, ven, sam } ;

Cette déclaration définit un type énuméré appelé jourSemaine. Elle précise qu’il comporte sept valeurs, désignées par les identificateurs dim, lun, mar, mer, jeu, ven, sam ; le compilateur affecte à chacun les valeurs, 0, 1, 2, 3, 4, 5, 6 respectivement.

Il est possible d’affecter une valeur à n’importe quel identificateur. Dans ce cas les identificateurs qui suivront seront automatiquement incrémentés par le compilateur à partir de cette valeur.

Exemple :

enum couleur {rouge, vert = 5, bleu, jaune, gris} ;

Les valeurs des identificateurs seront :

rouge = 0 ; vert = 5 ; bleu = 6 ; jaune = 7 ; et gris = 8.

Déclaration d’une variable de type énumération:

Syntaxe :

Les variables peuvent être déclarées directement avec l'énumération:

enum nomType {id0, id1,...,idN} nomVariable0,...,nomVariableN;

Ou de façon indépendantes (à condition que l'énumération nomType soit prélablement définie) :

enum nomType nomVariable0, …, nomVaraibleN ;

Exemple de declarations :

enum jourSemaine { dim, lun, mar, mer, jeu, ven, sam } ;

enum jourSemaine jour1;

enum jourSemaine {dim, lun, mar, mer, jeu, ven, sam} jour2 ;

Des énumérations sans nom de type peuvent être crées, comme par exemple :

enum {dim, lun, mar, mer, jeu, ven, sam} jour3 ;

Utilisation d’une variable de type énumérée :

Si l’énumération et la variable ont été préalablement définis, la syntaxe suivante est correcte :

nomVariable = idN ;

Exemple :

enum jourSemaine {dim, lun, mar, mer, jeu, ven, sam} ;

enum jourSemaine jour ;

jour = mar ;

jour = 5 ;  // on peut aussi utiliser directement la valeur de l’identificateur.

// ou faire un test sur la variable
if (jour == jeu)
 {
     ….

Les énumérations permettent de remplaçer des nombres ordinaires, dont le programmeur est amené à utiliser, par des mots ou des des phrases dont le but est d'aider à la description lors de leur usage. Le mot réservé enum est utilisé pour affecter des entiers séquentiels constants à une liste d'identificateurs.