Quand je déclare une variable enum comme ceci: est la variable code> variable utile? Si oui, que puis-je faire avec cela? P> Merci d'avance. P> P>
7 Réponses :
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. P>
Ce n'est pas ce que demande l'OP, je pense. Il veut savoir ce que couleurs code> est bon pour.
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 à: souvent, vous verrez un Ce qui vous permet d'utiliser plus d'énumération comme les types intégrés: p> de sorte que la réponse à votre question est que et ainsi de suite. P> P> P> > Typedef code> associé à la définition: p>
couleurs code> est une variable de type < Code> Enum Paint_Colors CODE> et peut être utilisé n'importe quelle façon de penser convient à une telle variable: p>
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 i> 'couleurs' est utile dépend du reste du programme. Le type type i> «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').
Vous pouvez peindre un roller coaster!
Cela n'utilise pas le tout de la variable code> de couleurs code>, ce qui est ce que l'OP avait demandé.
Je trouve des énumérums particulièrement utiles pendant le débogage. Si vous utilisez simplement 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é. P> #define code> 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. P>
interne, un Cela vous donne plusieurs avantages sur l'utilisation de 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. P> mentalement, vous pouvez presque penser à ceci est similaire de dire: p> La variable est traitée comme un Enum code> est traité comme un entier qui ne peut contenir qu'une plage de valeurs limitée. Dans ce cas, les constantes
rouge code>,
vert code>,
bleu code>, ... seront définis et seront égaux à
0 Code>,
1 code>,
2 code>, ... (respectivement). La variable
couleurs code> peut être utilisée n'importe où un
int code> peut être utilisé. Vous pouvez utiliser des opérateurs tels que
++ code> à itérer dans la liste des couleurs. La seule différence entre déclarer
Enum peinture_colors couleurs code> et
int couleurs code> est que la variable énumérée
peut frappe> doit em> être attribuée à un des constantes énumérées. #define code> pour créer une série de constantes et en utilisant un
normal code> pour
couleurs code> >. Premièrement, certains debuggers peuvent détecter que
couleurs code> est un type énuméré et affichera le nom de la constante énumérée au lieu d'une valeur numérique. P>
int code>, mais en lui donnant explicitement un type différent permet de clarifier ce que la variable est et ce qu'elle est utilisé pour. p> p>
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); }
colors=1676; //Valid in both of our case
@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.