Enums definieren
Erstellen Sie lesbare benannte Werte.
Enums definieren ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein Enum?
Eine Aufzählung (Enum) ist ein benutzerdefinierter Typ, der eine Gruppe benannter ganzzahliger Konstanten zusammenfasst.
Statt sich zu merken, dass 0 für Montag und 1 für Dienstag steht, geben Sie diesen Zahlen lesbare Namen. Dadurch wird der Code verständlicher und weniger fehleranfällig.
Grundlegende Syntax
Sie deklarieren ein Enum mit dem Schlüsselwort enum, einem Tag-Namen und einer Liste von Namen in geschweiften Klammern.
Jeder Name wird zu einer Konstante, die überall dort verwendet werden kann, wo eine Ganzzahl erwartet wird.
enum Weekday { MON, TUE, WED, THU, FRI };Standardwerte beginnen bei 0
Standardmäßig ist der erste Name 0, und jeder folgende Name ist um eins größer als der vorherige.
In enum Weekday ist MON also 0, TUE ist 1, WED ist 2 und so weiter.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
printf("%d %d %d\n", MON, TUE, WED);
return 0;
}Eine Enum-Variable deklarieren
Sobald ein Enum-Typ existiert, können Sie Variablen dieses Typs erstellen.
Die Variable enthält einen der benannten Werte. Intern handelt es sich einfach um ein 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;
}Warum Enums die Lesbarkeit verbessern
Vergleichen Sie if (state == 2) mit if (state == PAUSED).
Die zweite Variante ist selbsterklärend. Enums ermöglichen es dem Compiler, die Bedeutung nachzuverfolgen, während Sie übersichtliche benannte Werte statt rätselhafter Zahlen lesen.
enum Status { RUNNING, PAUSED, STOPPED };Enums mit switch verwenden
Enums eignen sich besonders gut für switch-Anweisungen. Jeder benannte Wert wird zu einer klaren case-Marke.
Dies ist eine der häufigsten praktischen Anwendungen von Enums.
#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;
}Enums sind lediglich Ganzzahlen
Enum-Konstanten können mit Ganzzahlen ausgetauscht werden. Sie können mit ihnen rechnen und sie vergleichen.
Diese Flexibilität ist praktisch, bedeutet aber auch, dass C Sie nicht daran hindert, eine Zahl außerhalb des gültigen Bereichs zu speichern.
#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
enum Level next = LOW + 1;
printf("%d\n", next);
return 0;
}Anonyme Enums
Sie können den Tag-Namen weglassen, wenn Sie nur die Konstanten und keinen benannten Typ benötigen.
So lässt sich schnell eine Gruppe zusammengehöriger ganzzahliger Konstanten definieren.
#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
printf("%d %d %d\n", RED, GREEN, BLUE);
return 0;
}Namenskonventionen
Konventionell werden Namen von Enum-Konstanten wie Makros in GROSSBUCHSTABEN geschrieben.
Das signalisiert den Lesenden, dass der Wert eine feste Konstante ist. Der Tag-Name verwendet häufig CamelCase oder PascalCase.
enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };Mit typedef kombinieren
enum Weekday überall auszuschreiben ist umständlich. Mit einem typedef können Sie einen kurzen Namen verwenden.
Nach dem typedef können Sie Variablen als Weekday today; deklarieren, ohne das Schlüsselwort enum.
#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
Weekday d = TUE;
printf("%d\n", d);
return 0;
}Gültigkeitsbereich von Enum-Konstanten
Die Namen von Enum-Konstanten teilen sich in ihrem Gültigkeitsbereich denselben Namensraum mit gewöhnlichen Bezeichnern.
Daher können zwei Enums im selben Gültigkeitsbereich nicht denselben Konstantennamen erneut verwenden. Wählen Sie unterschiedliche Namen, um Konflikte zu vermeiden.
enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };Kurztest
Testen Sie Ihr Verständnis der Enum-Standardwerte.
Zusammenfassung
Ein Enum definiert benannte ganzzahlige Konstanten. Der erste Wert ist 0, und jeder folgende Name ist um eins größer, sofern Sie nichts anderes angeben.
Enums machen Code lesbarer, eignen sich gut für switch und können mit typedef verkürzt werden. Als Nächstes untersuchen wir benutzerdefinierte Werte und Wertebereiche.
Häufig gestellte Fragen
Ist die Lektion „Enums definieren“ kostenlos?
Ja — der vollständige Text von „Enums definieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Enums definieren“?
Erstellen Sie lesbare benannte Werte. Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C Academy zu starten?
Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Enums definieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?
Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Enums definieren
- Enum-Werte und Wertebereiche
- const-Variablen
- #define-Konstanten