9
votes

Que puis-je faire avec une variable d'énumération?

Quand je déclare une variable enum comme ceci: xxx

est la variable variable utile? Si oui, que puis-je faire avec cela?

Merci d'avance.


2 commentaires

@drigoskalwalker, j'ai corrigé votre syntaxe pour vous. J'espère avoir compris la question correctement.


J'ai révélé de nombreuses réponses maintenant. Fast Guns Out là-bas, lisez d'abord, feu plus tard. Il ne demande pas des valeurs d'énorme, mais de la variable Enum. Toutes les réponses mais la première ignorez complètement cela.


7 Réponses :


0
votes

Un énumé est utile lorsque vous avez un ensemble donné de valeurs possibles, où chaque valeur a un nom significatif. Ailleurs, vous vous référez aux valeurs ENUM, plutôt que de «chiffres magiques», qui peuvent ne plus avoir de sens chez les autres Code.


1 commentaires

Ce n'est pas ce que demande l'OP, je pense. Il veut savoir ce que couleurs est bon pour.



13
votes

Vraiment ce que vous faites, il y a une variable en ligne avec le reste de la définition de l'énumération. C'est équivalent à: xxx

souvent, vous verrez un Typedef associé à la définition: xxx

Ce qui vous permet d'utiliser plus d'énumération comme les types intégrés: xxx

de sorte que la réponse à votre question est que couleurs est une variable de type < Code> Enum Paint_Colors et peut être utilisé n'importe quelle façon de penser convient à une telle variable: xxx

et ainsi de suite. >


3 commentaires

Il se poursuit inutile pour moi et pour C. Je peux utiliser des types int ou d'autres types de peinture_color, les couleurs variables sont toujours inutiles.


@Drigoskalwalker, il vous permet de faire une sorte de typage limitée. Si vous ne voulez pas les utiliser, vous n'êtes pas obligé. Cela peut être pratique cependant.


Vous posez deux questions maintenant. Que la variable variable 'couleurs' est utile dépend du reste du programme. Le type type «Enum peinture_colors» est utile car il communique la plage d'intention et de valeur de cette variable et d'autres - il met plus l'accent sur le quoi («C'est l'une des 3 couleurs») et moins sur le comment ('Ceci est stocké comme un int').



1
votes

Vous pouvez peindre un roller coaster! XXX


1 commentaires

Cela n'utilise pas le tout de la variable de couleurs , ce qui est ce que l'OP avait demandé.



-1
votes

Je trouve des énumérums particulièrement utiles pendant le débogage. Si vous utilisez simplement #define pour définir les constantes utilisées comme des valeurs pour une variable, le débogueur vous montrera le numéro. Avec Enum, il peut vous montrer les noms.

Et si vous avez besoin d'un ensemble de valeurs possibles (constantes) pour une seule variable, vous pouvez le définir comme vous l'avez montré.


0 commentaires

11
votes

interne, un Enum est traité comme un entier qui ne peut contenir qu'une plage de valeurs limitée. Dans ce cas, les constantes rouge , vert , bleu , ... seront définis et seront égaux à 0 , 1 , 2 , ... (respectivement). La variable couleurs peut être utilisée n'importe où un int peut être utilisé. Vous pouvez utiliser des opérateurs tels que ++ à itérer dans la liste des couleurs. La seule différence entre déclarer Enum peinture_colors couleurs et int couleurs est que la variable énumérée peut doit être attribuée à un des constantes énumérées.

Cela vous donne plusieurs avantages sur l'utilisation de #define pour créer une série de constantes et en utilisant un normal pour couleurs >. Premièrement, certains debuggers peuvent détecter que couleurs est un type énuméré et affichera le nom de la constante énumérée au lieu d'une valeur numérique.

Plus important encore, cela peut ajouter une couche supplémentaire. de vérification de type. Il n'est pas requis par la norme C, mais certains compilateurs vérifient 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 à ceci est similaire de dire: xxx

La variable est traitée comme un int , mais en lui donnant explicitement un type différent permet de clarifier ce que la variable est et ce qu'elle est utilisé pour.


0 commentaires

1
votes

in c, la variable de type ENum peut être itératée, telle que ++, +; Mais cela n'est pas autorisé en C ++;

enum WEEKDAY {MON, TUE, WED, THU, FRI, SAT, SUN, END};
for(WEEKDAY day = 0; day < END; day++){
    printf("day index = %d\n", day);
}


0 commentaires

0
votes
colors=1676;    //Valid in both of our case

0 commentaires