Ein Aufzählungstyp besitzt eine fest begrenzte (meist relativ kleine) Menge von Werten. Diese Werte werden rechnerintern als ganze Zahlen verarbeitet, können aber im Programmquelltext über spezielle Wertbezeichner angesprochen werden. Bei der Deklaration eines Aufzählungstyps werden diese Wertbezeichner explizit aufgeführt.
Aufzählungstypen erlauben das Notieren von besser lesbaren Programmen.
Zu beachten ist jedoch, daß die Wertbezeichner eines Aufzählungstyps nicht im Rahmen der standardmäßig verfügbaren Ein- und Ausgabefunktionen benutzt werden können.
Zu unterscheiden ist
enum name { wert_1, ..., wert_n };
enum { wert_1, ..., wert_n } variable_1, ..., variable_m;
enum name { wert_1, ..., wert_n } variable_1, ..., variable_m;
enum name variable_1, ..., variable_m;
wert_1 0 wert_2 1 ... wert_n n-1Bei Bedarf kann diese interne Wertzuordnung verändert werden: In der enum-Anweisung wird nicht nur der Wertbezeichner wert_k angegeben, sondern auch der zugehörige interne Wert i
wert_k = iBeispiele:
enum { montag, dienstag, mittwoch, donnerstag, freitag,
samstag, sonntag } wochentag;
/* Vereinbarung der Variablen wochentag mit anonymen Datentyp */
enum jahreszeiten
{ winter, fruehling, herbst, winter, karneval=5 };
/* Vereinbarung des Datentyps jahreszeiten */
enum jahreszeiten j1, j2;
/* Vereinbarung der Variablen j1, j2 mit dem Datentyp jahreszeiten */
Vordefinierte Aufzählungstypen gibt es im Laufzeitsystem von C im
allgemeinen nicht.