Que puis-je faire avec une variable enum?
Lorsque je déclare un enum variable comme ceci:
enum paint_colors { RED, GREEN, BLUE, ...} colors;
est le colors
variable utile? Si oui, que puis-je faire avec?
Merci d'avance.
source d'informationauteur drigoSkalWalker
Vous devez vous connecter pour publier un commentaire.
En interne, un
enum
est traité comme un entier qui ne peut contenir qu'un nombre limité de valeurs. Dans ce cas, les constantesRED
GREEN
BLUE
... sera défini et sera égal à0
1
2
... (respectivement). La variablecolors
peut être utilisé partout où unint
peut être utilisé. Vous pouvez utiliser des opérateurs comme++
pour parcourir la liste des couleurs. La seule différence entre déclarantenum paint_colors colors
etint colors
est que les énumérés de la variabledevrait seulement être affecté à l'un des constantes énumérées.Cela vous donne de nombreux avantages par rapport à l'aide
#define
pour créer une série de constantes et à l'aide d'un normalint
pourcolors
. Tout d'abord, certains des débogueurs peut détecter quecolors
est un type énuméré et affiche le nom de la constante énumérée au lieu d'une valeur numérique.Plus important, ce qui peut ajouter une couche supplémentaire de vérification de type. Il n'est pas requis par la norme, mais certains compilateurs vérifiez et assurez-vous que les valeurs attribuées à une variable de type énuméré correspondent à l'une des constantes énumérées.
Mentalement, vous pouvez presque penser c'est comme dire:
La variable est traitée comme une
int
mais donnant explicitement un autre type d'aide à clarifier ce que la variable est et ce qu'il est utilisé pour.Vraiment ce que vous faites là est la déclaration d'une variable en ligne avec le reste de la définition de l'énumération. C'est l'équivalent de:
Souvent, vous verrez un
typedef
associé à la définition:Qui vous permet d'utiliser l'énumération de plus, comme les construit dans les types:
Donc la réponse à votre question est que
colors
est une variable de typeenum paint_colors
et peut être utilisé de la manière que vous pensez est approprié pour une telle variable:Et ainsi de suite.
Vous pouvez peindre les montagnes russes!
Un enum est utile lorsque vous avez un ensemble donné de valeurs possibles, où chaque valeur a un nom significatif. D'ailleurs, vous consultez les valeurs enum, plutôt que de "nombres magiques", qui peut devenir vide de sens parmi d'autres codes.
En C, le type enum variable peut être itéré, comme ++, +; Mais ce n'est pas autorisé en C++;
peut être compilé en C, pas en C++;
- Je trouver les énumérations particulièrement utile lors du débogage. Si vous venez d'utiliser
#define
de définir les constantes utilisées en tant que valeurs de certaines variables, le débogueur affiche vous le nombre. Avec le protocole enum il peut vous montrer les noms.Et si vous avez besoin d'un ensemble de valeurs (constantes) pour une seule variable, vous pouvez définir la façon dont vous le montré.