Type énuméré
En programmation informatique, un type énuméré (appelé souvent énumération ou juste enum, parfois type énumératif ou liste énumérative) est un type de données qui consiste en un ensemble de valeurs constantes. Ces différentes valeurs représentent différents cas ; on les nomme énumérateurs. Lorsqu'une variable est de type énuméré, elle peut avoir comme valeur n'importe quel cas de ce type énuméré.
Un exemple typique est la représentation de cartes à jouer ordinaires : la suite ("couleur") ainsi que la hauteur (nombre ou figure) de la carte peuvent être représentés par des énumérations. Dans certains langages, le type booléen (logique) est un type énuméré prédéfini qui possède deux énumérateurs (true et false). Toutefois, les énumérateurs sont souvent écrits en majuscule afin d'indiquer que ce sont des constantes.
Syntaxe et fonctionnement
Langage C
En C et avec les langages syntaxiquement proches :
Exemple en | |
---|---|
langage C | langage C++ |
//** ****************************************
//** Fichier de déclaration
//** ****************************************
//## Déclaration d'un type personnalisé (liste énumérative).
enum TCouleurCarte
{
ccTrefle,
ccCarreau,
ccCoeur,
ccPique
};
//## Déclaration d'un type personnalisé (structure).
struct TCarte
{
enum TCouleurCarte Couleur;
short int Valeur;
};
//** ****************************************
//** Fichier d'implémentation
//** ****************************************
//** Définition d'une variable
//** à partir du type personnalisé (structure).
struct TCarte MaMain[5];
//** Définition d'une variable
//** à partir du type personnalisé (liste énumérative).
enum TCouleurCarte Atout;
// Affecter une valeur à l'atout.
Atout = ccTrefle;
// Affecter une valeur à l'une des cartes de la main.
MaMain[2].Couleur = ccCoeur;
MaMain[2].Valeur = 10;
|
En C, les énumérateurs ont une portée globale ou limitée à un bloc. Ils sont équivalents à des entiers. Le premier énumérateur vaut zéro, tandis que tous les suivants correspondent à leur précédent incrémenté de un. Il est possible de choisir explicitement les valeurs des constantes d'énumération (ou de certaines d'entre elles ; dans ce cas, les autres suivent la règle donnée précédemment), comme dans :
enum TCouleurCarte {
ccTrefle = 1,
ccCarreau = 2,
ccCoeur = 4,
ccPique = 8
};
Source
- « Chapitre 10: Les types avancées [partie II] », sur www.apprendre-informatique.com (consulté le ) (section Les énumérations).
- « Langage C++ : Enumérations », sur fr.wikiversity.org (consulté le ).
- « Programmation C/Types avancés », sur fr.wikibooks.org (consulté le ) (section Énumérations).
- « Déclarations d'énumération C », sur msdn.microsoft.com (consulté le )
- « Chapitre 2 Les types énumérés », sur lacl.u-pec.fr (consulté le ) (PDF)
- « Créez vos propres types de variables », sur openclassrooms.com (consulté le ) (section Les énumérations)
- « Les énumérations », sur c.developpez.com (consulté le )
- « Apprenez à programmer en Java - Les énumérations », sur openclassrooms.com (consulté le )
- « Chapître 2 - Introduction au langage C », sur www.lacim.uqam.ca (consulté le ) (page 20: type énumératif)