C: Enum-Bezeichner für Wertebereich festlegen?

2 Antworten

"Bereich" bezieht sich im verlinkten Artikel nicht auf "Wertebereich", sondern "Sichtbarkeitsbereich" und nicht auf Werte, sondern auf Namen:

Die Bezeichner in der Enumerationsliste müssen sich von anderen Bezeichnern im selben Bereich mit der gleichen Sichtbarkeit unterscheiden.

Da ein enum nur syntaktischer Zucker für mehrere Integeronstantendefinitionen ist, kann man natürlich auch einem Namen nur einen einzigen Integerwert zuweisen.

-----

In einigen Sprachen, wie Pascal, ist es möglich, einen Typ zu definieren, der einen eingeschränkten Wertebereich hat, z. B.

type int10 = 1 .. 10;

(Quelle)

aber das erfordert, dass der Compiler bei jeder Zuweisung eine Prüfung einbaut. (Und es ist ein eigener Typ und kein Element einer Aufzählung.)

Ein Einbau einer Prüfung bei jeder Zuweisung würde der Philosophie von C widersprechen - Fokus auf Performanz, weshalb der Programmierer sich explizit selbst um Überprüfungen kümmern muss.

Mehrere Bezeichner können den gleichen Wert haben. Jeder Bezeichner muß aber einen eindeutigen Wert haben.