Typ s výčtem

V počítačovém programování je výčtový typ (často nazývaný výčet nebo jen výčet , někdy výčtový typ nebo výčtový seznam ) datový typ, který se skládá ze sady konstantních hodnot. Tyto různé hodnoty představují různé případy  ; nazývají se enumerátory . Když je proměnná výčtu typu, může mít jako hodnotu jakýkoli případ tohoto výčtu typu.

Typickým příkladem je znázornění běžných hracích karet  : pokračování („oblek“) i výšku (počet nebo obrázek) karty lze představit výčty. V některých jazycích je logický (logický) typ předdefinovaný výčtový typ, který má dva výčty ( true a false ). Enumerátory jsou však často psány velkými písmeny, aby označovaly, že se jedná o konstanty.

Syntaxe a operace

Jazyk C.

V jazyce C a se syntakticky podobnými jazyky:

Příklad vyjmenovaného vlastního typu
Příklad v
Jazyk C. Jazyk 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;



V jazyce C mají enumerátory globální rozsah nebo jsou omezeny na blok. Jsou ekvivalentní celým číslům. První enumerátor je nula, zatímco všechny následující se shodují s předchozím zvýšeným o jednu. Je možné explicitně zvolit hodnoty konstant výčtu (nebo některých z nich; v tomto případě ostatní postupují podle dříve uvedeného pravidla), jako v:

enum TCouleurCarte { ccTrefle = 1, ccCarreau = 2, ccCoeur = 4, ccPique = 8 };

Zdroj