Type énuméré

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Enum.

En programmation informatique, un type énuméré (appelé souvent 'énumération' ou parfois 'type énumératif' et liste énumérative) est un type de données qui consiste en un ensemble de constantes appelées énumérateurs. Lorsque l'on crée un type énuméré on définit ainsi une énumération. Lorsqu'un identificateur tel qu'une variable est déclaré comme étant de type énuméré, cette variable peut recevoir n'importe quel énumérateur (lié à ce type énuméré) comme valeur. Si le langage de programmation autorise de donner un nom à un type énuméré, le nom est généralement choisi pour décrire collectivement les énumérateurs de l'ensemble.

Dans certains langages, le type booléen 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[modifier | modifier le code]

  • En C et avec les langages syntaxiquement proches :
Exemple de type personnalisé énuméré
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[modifier | modifier le code]