enum

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Catégorie

Spécificateurs de type

Syntaxe



 enum [<balise_de_type>] {<nom_de_constante> [= <valeur>], ...} [list_var];



  • <balise_de_type> est une balise de type facultative qui nomme l'ensemble.
  • <nom_de_constante> est le nom d'une constante à qui il peut être facultativement affecté la valeur de <valeur>. Ces constantes sont aussi appelées constantes d'énumération.
  • <valeur> doit être un entier. Si <value> est manquante, on la suppose : <prev> + 1 où <prev> représente la valeur de la constante entière précédente dans la liste. Pour la première constante entière de la liste, la valeur par défaut est 0.
  • <list_var> est une liste de variables facultative qui affecte des variables au type enum.

Description

Utilisez le mot clé enum pour définir un ensemble de constantes de type int, appelé type de données énumération.

Un type de données énumération fournit des identificateurs mnémoniques pour un ensemble de valeurs entières. Utilisez l'indicateur -b pour inverser l'option Traiter les types énumérés comme des entiers. Les énumérations sont toujours interprétées comme des int si la plage de valeurs le permet, mais si ce ne sont pas des int, la valeur est transformée en int dans les expressions. Selon les valeurs des énumérateurs, les identificateurs d'une liste d'énumérateurs sont implicitement considérés de type signed char, unsigned char, short, unsigned short, int ou unsigned int.

En C, il peut être affecté à une variable énumérée toute valeur de type int, il n'est effectué aucun contrôle de type. En C++, il ne peut être affecté à une variable énumérée que l'un de ses énumérateurs.

En C++, vous pouvez omettre le mot clé enum si <balise_de_type> n'est pas le nom de quelque chose d'autre dans la même portée. Vous pouvez également omettre <balise_de_type> si aucune variable supplémentaire de ce type enum n'est nécessaire.

En l'absence de <valeur> la valeur zéro est affectée au premier énumérateur. Tous les noms suivants sans initialisateurs seront augmentés de un. <valeur> peut être n'importe quelle expression donnant une valeur entière positive ou négative (après des conversions possibles en entier). Ces valeurs sont d'habitude uniques, mais elles peuvent être en double.

Les balises d'énumération partagent le même espace de nommage que les balises de structure et d'union. Les énumérateurs partagent le même espace de nommage que les identificateurs de variables ordinaires.

En C++, les énumérateurs déclarés dans une classe sont dans la portée de cette classe.