enum-Attribut
Die Schlüsselwort (keyword) Enumeration identifiziert einen enumerierten Typ.
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
Etikett
-
Gibt ein optionales Tag für den aufgezählten Typ an.
-
identifier
-
Gibt die bestimmte Enumeration an.
-
ganzzahliger Wert
-
Gibt einen konstanten ganzzahligen Wert an.
Enumerationstypen können als Typspezifizierer in typedef-Deklarationen , allgemeinen Deklarationen und Funktionsdeklaratoren (entweder als Funktionsrückgabetyp oder als Parametertypspezifizierer) angezeigt werden. Informationen zum Kontext, in dem Typspezifizierer angezeigt werden, finden Sie unter IdL-Datei (Interface Definition).
Im Standardmodus des MIDL-Compilers können Sie Enumeratoren ganzzahlige Werte zuweisen. (Dieses Feature ist nicht verfügbar, wenn Sie mit dem Schalter /osf kompilieren.) Wie bei C-Sprachenumeratoren müssen Enumeratornamen eindeutig sein, aber die Enumeratorwerte müssen nicht sein.
Wenn keine Zuweisungsoperatoren bereitgestellt werden, werden bezeichner aufeinanderfolgenden ganzen Zahlen von links nach rechts zugeordnet, beginnend mit null. Wenn Zuweisungsoperatoren bereitgestellt werden, beginnen zugewiesene Werte mit dem zuletzt zugewiesenen Wert.
Die maximale Anzahl von Bezeichnern beträgt 65.535.
Objekte vom Typ enum sind int-Typen , und ihre Größe ist systemabhängig. Standardmäßig werden Objekte von Enumerationstypen bei der Übertragung über ein Netzwerk als 16-Bit-Objekte vom Typ unsignedshort behandelt. Werte außerhalb des Bereichs 0 bis 32.767 verursachen die Laufzeitausnahme RPC_X_ENUM_VALUE_OUT_OF_RANGE. Um Objekte als 32-Bit-Entitäten zu übertragen, wenden Sie das [v1_enum] -Attribut auf die Enumerationstypdefinition an.
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;