C enum (Énumération)
L'énumération est un type de données de base en C, utilisée pour définir un ensemble de constantes avec des valeurs discrètes. Elle rend les données plus concises et lisibles.
Les types énumérés sont généralement utilisés pour attribuer des noms à un groupe de constantes associées dans un programme, ce qui rend le programme plus lisible et plus facile à maintenir.
Pour définir un type énuméré, vous devez utiliserenumle mot-clé, suivi du nom du type énuméré, et, en utilisant des accolades,{}un ensemble de constantes d'énumération est enfermé. Chaque constante d'énumération peut être représentée par un identifiant, et vous pouvez également leur attribuer une valeur entière. Si elle n'est pas spécifiée, par défaut à partir de0Commence à s'incrémenter.
Le format de définition de la syntaxe enum est :
enum 枚举名 {枚举元素1,枚举元素2,……};
Ensuite, prenons un exemple : une semaine a 7 jours. Si nous n'utilisons pas d'énumérations, nous devons utiliser #define pour définir un alias pour chaque entier :
Cela ressemble à pas mal de code. Voyons maintenant l'utilisation des énumérations :
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
Cela ne semble-t-il pas plus concis ?
Remarque :La valeur par défaut du premier membre de l'énumération est l'entier 0, et la valeur de chaque membre suivant de l'énumération est la valeur du membre précédent plus 1. Dans cet exemple, nous définissons la valeur du premier membre de l'énumération à 1, celle du deuxième à 2, et ainsi de suite.
Vous pouvez modifier les valeurs des éléments d'énumération lors de la définition du type d'énumération :
enum season {spring, summer=3, autumn, winter};Les éléments d'énumération sans valeur spécifiée ont la valeur de l'élément précédent plus 1. C'est-à-dire, spring vaut 0, summer vaut 3, autumn vaut 4, winter vaut 5
Définition des variables d'énumération
Précédemment, nous avons seulement déclaré le type d'énumération. Voyons maintenant comment définir des variables d'énumération.
Nous pouvons définir des variables d'énumération de trois façons
1. Définir d'abord le type d'énumération, puis définir la variable d'énumération
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
2. Définir la variable d'énumération en même temps que le type d'énumération
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
3. Omettre le nom de l'enum et définir directement la variable enum
enum
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
Exemple
Le résultat de sortie de l'exemple ci-dessus est :
3
En C, les types enum sont traités comme des types int ou unsigned int, donc selon la spécification du langage C, il n'existe aucun moyen de parcourir un type enum.
Cependant, dans certains cas particuliers, le type enum doit être continu, ce qui permet un parcours conditionnel.
L'exemple suivant utilise une boucle for pour parcourir les éléments de l'enum :
Exemple
Le résultat de sortie de l'exemple ci-dessus est :
枚举元素:1 枚举元素:2 枚举元素:3 枚举元素:4 枚举元素:5 枚举元素:6 枚举元素:7
Le type d'énumération suivant n'est pas continu, et ce type d'énumération ne peut pas être parcouru.
enum
{
ENUM_0,
ENUM_10 = 10,
ENUM_11
};
Utilisation des énumérations dans switch :
Exemple
Le résultat de sortie de l'exemple ci-dessus est :
请输入你喜欢的颜色: (1. red, 2. green, 3. blue): 1 你喜欢的颜色是红色
Conversion d'un entier en une énumération
L'exemple suivant convertit des entiers en énumérations :
Exemple
Le résultat de sortie de l'exemple ci-dessus est :
weekend:1autres extensions