Définir des énumérations
Créez des valeurs nommées lisibles.
Définir des énumérations est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C Academy comprend 4 leçons au total.
Qu’est-ce qu’une énumération ?
Une énumération (enum) est un type défini par l’utilisateur qui regroupe un ensemble de constantes entières nommées.
Au lieu de retenir que 0 signifie lundi et 1 mardi, vous donnez à ces nombres des noms lisibles. Le code est ainsi plus clair et moins sujet aux erreurs.
Syntaxe de base
Vous déclarez une énumération avec le mot-clé enum, un nom d’étiquette et une liste de noms entre accolades.
Chaque nom devient une constante que vous pouvez utiliser partout où un entier est attendu.
enum Weekday { MON, TUE, WED, THU, FRI };Les valeurs par défaut commencent à 0
Par défaut, le premier nom vaut 0 et chaque nom suivant vaut un de plus que le précédent.
Ainsi, dans enum Weekday, MON vaut 0, TUE vaut 1, WED vaut 2, et ainsi de suite.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
printf("%d %d %d\n", MON, TUE, WED);
return 0;
}Déclarer une variable d’énumération
Une fois le type énuméré créé, vous pouvez créer des variables de ce type.
La variable contient l’une des valeurs nommées. En interne, ce n’est qu’un int.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
enum Weekday today = WED;
printf("today = %d\n", today);
return 0;
}Pourquoi les énumérations améliorent la lisibilité
Comparez if (state == 2) et if (state == PAUSED).
La seconde forme se suffit à elle-même. Les énumérations permettent au compilateur de suivre la signification tandis que vous lisez des valeurs nommées et claires, plutôt que des nombres mystérieux.
enum Status { RUNNING, PAUSED, STOPPED };Utiliser les énumérations avec switch
Les énumérations s’associent naturellement aux instructions switch. Chaque valeur nommée devient une étiquette de cas claire.
C’est l’une des utilisations les plus courantes des énumérations dans les programmes réels.
#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
enum Status s = PAUSED;
switch (s) {
case RUNNING: printf("running\n"); break;
case PAUSED: printf("paused\n"); break;
case STOPPED: printf("stopped\n"); break;
}
return 0;
}Les énumérations ne sont que des entiers
Les constantes d’énumération sont interchangeables avec les entiers. Vous pouvez effectuer des calculs et des comparaisons avec elles.
Cette souplesse est pratique, mais signifie également que C ne vous empêchera pas de stocker un nombre hors intervalle.
#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
enum Level next = LOW + 1;
printf("%d\n", next);
return 0;
}Énumérations anonymes
Vous pouvez omettre le nom d’étiquette si vous n’avez besoin que des constantes et non d’un type nommé.
C’est une manière rapide de définir un groupe de constantes entières liées.
#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
printf("%d %d %d\n", RED, GREEN, BLUE);
return 0;
}Conventions de nommage
Par convention, les noms des constantes d’énumération s’écrivent en MAJUSCULES_AVEC_DES_TIRETS_BAS, comme les macros.
Cela indique aux lecteurs que la valeur est une constante fixe. Le nom d’étiquette utilise souvent CamelCase ou PascalCase.
enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };Associer avec typedef
Écrire enum Weekday partout est verbeux. Un typedef vous permet d’utiliser un nom court.
Après le typedef, vous pouvez déclarer des variables comme Weekday today; sans le mot-clé enum.
#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
Weekday d = TUE;
printf("%d\n", d);
return 0;
}Portée des constantes d’énumération
Les noms des constantes d’énumération partagent le même espace de noms que les identifiants ordinaires dans leur portée.
Cela signifie que deux énumérations appartenant à la même portée ne peuvent pas réutiliser le même nom de constante. Choisissez des noms distincts pour éviter les conflits.
enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };Vérification rapide
Testez votre compréhension des valeurs par défaut des énumérations.
Récapitulatif
Une énumération définit des constantes entières nommées. La première vaut 0 et chaque nom suivant vaut un de plus, sauf indication contraire.
Les énumérations rendent le code lisible, s’associent bien à switch et peuvent être raccourcies avec typedef. Nous allons maintenant explorer les valeurs et les intervalles personnalisés.
Questions Fréquemment Posées
La leçon « Définir des énumérations » est-elle gratuite ?
Oui — le texte complet de « Définir des énumérations » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C Academy, passe à CoddyKit PRO. Le cours C Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Définir des énumérations » ?
Créez des valeurs nommées lisibles. Tu pratiques C Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C Academy ?
Aucune expérience préalable n'est requise. C Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Définir des énumérations » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C Academy ?
Oui. Chaque leçon C Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Définir des énumérations
- Valeurs et plages d’énumération
- Variables const
- Constantes #define