Aufzählung Elementlimit

8

Gibt es eine maximale Anzahl von zulässigen enum -Elementen in C ++?

(Frage ergab sich aus der Antwort auf meine vorherige Frage auf definiert )

    
Community 12.07.2010, 19:14
quelle

3 Antworten

11

Es gibt kein spezifiziertes Maximum oder Minimum, es hängt von Ihrer Implementierung ab. Beachten Sie jedoch, dass in Anhang B Folgendes steht:

  

- Aufzählungskonstanten in einer einzelnen Aufzählung [4096].

Als Empfehlung. Aber das ist streng genommen eine Empfehlung, keine Voraussetzung.

    
GManNickG 12.07.2010, 19:25
quelle
4

Die Sprache spezifiziert nichts dergleichen. Compiler können jedoch Grenzen haben. Sie müssten Ihre Compiler-Dokumente dafür überprüfen.

    
T.E.D. 12.07.2010 19:35
quelle
1

Im Fall von C ist enum nur ein besserer Bereich von #define s. Was auch immer das im Detail vom Standard C bedeutet: ein Enum-Wert ist ein

  

Typ, der mit einem kompatibel ist   Implementierung definiert eines der   ganzzahlige Typen.

Meine Vermutung ist, dass C ++ eine ähnliche Definition hat und C ++ 0x einige Tippmöglichkeiten hinzufügt. Alles in einem, was bedeuten würde, dass die Menge, die Sie von ihnen haben können, theoritisch durch den zugrunde liegenden Typ begrenzt ist (was auch immer es ist?% Co_de% die meiste Zeit, ich nehme an, der C-Standard ist diesbezüglich nicht klar genug). Aber bevor Sie Millionen von Symbolen einrichten können, wird Ihr Compiler abstürzen oder wahrscheinlich nicht genügend Speicher haben.

    
jdehaan 12.07.2010 19:37
quelle

Tags und Links