Constantes énumérées
Une énumération est une liste de valeurs entières constantes. Définition Une énumération est une liste de valeurs entières constantes.
enum logique { NON, OUI }; → NON vaudra 0 → OUI vaudra 1 syntaxe enum logique { NON, OUI }; → NON vaudra 0 → OUI vaudra 1
syntaxe Il est possible de préciser la première valeur: enum mois { JANVIER = 1,FEVRIER,MARS, AVRIL,MAI,JUIN,JUILLET,AOUT,SEPTEMBRE, OCTOBRE,NOVEMBRE,DECEMBRE }; → JANVIER vaudra 1 → FEVRIER vaudra 2 etc
syntaxe Il est possible de préciser chacune des valeurs: enum echaps { TAB = '\t' , LIGNE = '\n', RETOUR = '\r' };
syntaxe ... } Exemple d'utilisation: int main(){ enum mois unNumeroDeMois; unNumeroDeMois = MARS; ... }
syntaxe Afin de ne pas avoir à répéter le mot clef enum, il est possible de faire : typedef enum { JANVIER = 1,FEVRIER, MARS,AVRIL,MAI,JUIN,JUILLET,AOUT, SEPTEMBRE,OCTOBRE,NOVEMBRE,DECEMBRE }mois; Ce qui permet d'écrire : int main(){ mois unNumeroDeMois; unNumeroDeMois = MARS; ... }
Exercice Proposez une définition de type énumérée nommée jours permettant de représenter les jours de la semaine. Soit le programme suivant : int main(){ char *nomJour[7]={"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"," dimanche"}; jours aujourdhui=MARDI ; printf("%s\n",nomJour[aujourdhui]) ; } Qu'affichera le programme ci-dessus ? Ecrivez une fonction nommée afficheNomMois qui prendra en paramètre un type énuméré mois et affichera le mois en toutes lettres correspondant au paramètre.