Zurück zu: C Tutorial
C Aufzählungen
Ein Enumerationstyp ist ein spezieller Typ, der eine Gruppe von Konstanten (unveränderlichen Werten) darstellt.
Um eine Enumeration zu erstellen, verwenden Sie das Schlüsselwort „enum
“, gefolgt vom Namen der Enumeration, und trennen Sie die Enumerationselemente durch Kommas:
enum Level {
LOW,
MEDIUM,
HIGH
};
Beachten Sie, dass für das letzte Element kein Komma erforderlich ist.
Die Verwendung von Großbuchstaben ist nicht erforderlich, wird aber oft als gute Vorgehensweise angesehen.
Enum ist die Abkürzung für „Enumerations“, was „speziell aufgelistet“ bedeutet.
Um auf die Aufzählung zuzugreifen, müssen Sie eine Variable davon erstellen.
Geben Sie in der main()
Methode das Schlüsselwort enum
an, gefolgt vom Namen des Enums (Level
) und dann dem Namen der Enum Variable (in diesem Beispiel myVar
):
enum Level myVar;
Nachdem Sie nun eine Enumerationsvariable (myVar
) erstellt haben, können Sie ihr einen Wert zuweisen.
Der zugewiesene Wert muss eines der Elemente innerhalb der Aufzählung sein (LOW
, MEDIUM
oder HIGH
):
enum Level myVar = MEDIUM;
Standardmäßig hat das erste Element (LOW
) den Wert 0
, das zweite (MEDIUM
) den Wert 1
usw.
Wenn Sie jetzt versuchen, myVar auszudrucken, wird 1
ausgegeben, was MEDIUM
darstellt:
int main() {
// Create an enum variable and assign a value to it
enum Level myVar = MEDIUM;
// Print the enum variable
printf("%d", myVar);
return 0;
}
Werte ändern
Wie Sie wissen, hat das erste Element einer Enumeration den Wert 0. Das zweite hat den Wert 1 und so weiter.
Um die Werte verständlicher zu machen, können Sie sie ganz einfach ändern:
enum Level {
LOW = 25,
MEDIUM = 50,
HIGH = 75
};
printf("%d", myVar); // Now outputs 50
Beachten Sie: Wenn Sie einem bestimmten Element einen Wert zuweisen, werden die Nummern der nächsten Elemente entsprechend aktualisiert:
enum Level {
LOW = 5,
MEDIUM, // Now 6
HIGH // Now 7
};
Enumeration in einer Switch Anweisung
Enumerationen werden häufig in Switch Anweisungen verwendet, um nach entsprechenden Werten zu suchen:
enum Level {
LOW = 1,
MEDIUM,
HIGH
};
int main() {
enum Level myVar = MEDIUM;
switch (myVar) {
case 1:
printf("Low Level");
break;
case 2:
printf("Medium level");
break;
case 3:
printf("High level");
break;
}
return 0;
}
Warum und wann verwendet man Enums?
Enumerationen werden verwendet, um Konstanten zu benennen, was den Code leichter lesbar und wartbar macht.
Verwenden Sie Enumerationen, wenn Sie Werte haben, von denen Sie wissen, dass sie sich nicht ändern, wie Monatstage, Tage, Farben, Kartenspiele usw.