|
|
|
|
|
|
|
|
| .. Aufzählungstyp - enum | ||
|
|
||
|
|
In machen Programmiersituationen ist es hilfreich, wenn einer Variablen konstante Werte über einen Namen zugewiesen werden können. Ein Beispiel sind die Zahlen 0 bis 6, die bei Berechnungen des Wochentags für die Tagesnamen So, Mo .. bis Sa stehen. Durch den Präprozessorbefehl #define könnte man sich hierbei wie folgt behelfen ..
Beispiel: |
|
#define So 0; #define Mo 1; #define Di 2; #define Mi 3; #define Do 4; #define Fr 5; #define Sa 6; int tag = So; |
||
|
|
In diesem Beispiel ist es einfacher sich die Abkürzung des Tagesnamen zu merken, als die zugeordnete Kennzahl. Allerdings muss man eine ganze Menge schreiben, und Fehler sind auch noch möglich, denn die Zuweisung ..
tag = 1234;
wäre zwar total sinnlos aber wer wollte sie verhindern? Durch den C-Aufzählungstyp enum lässt sich das Problem eleganter lösen. Hier kann man schreiben ..
Beispiel: |
|
enum wochentag { So, Mo, Di, Mi, Do, Fr, Sa } tag;
|
||
|
|
|
|
enum wochentag feiertag, weihnachten; feiertag = Sa; // Wert der Variaben ist 6 weihnachten = Mo; // Wert der Variablen ist 1 |
||
|
|
feiertag = 6; würde allerdings in einer Fehlermeldung enden, da Werte jetzt nur noch mit den konstanten Bezeichnern zugeordnet werden dürfen. |
|
|
|
|
|
|
|
Beispiel: |
|
enum speicher {Disk=0x20, CD=0x40, Festpl};
enum speicher geraet;
geraet = Disk; // zugeordneter Wert = 20h;
geraet = CD; // zugeordneter Wert = 40h;
geraet = Festpl; // zugeordneter Wert = 41h;
|
||
|
|
Zudem ist zu erkennen, dass in der Deklarationszeile des enum Typs nicht zwingend eine Variable angegeben werden muss. Diese wird im Beispiel erst in der zweiten Zeile deklariert. |
|
|
|
|
|
|
|
|
|
|
|
.de