attributo enumerazione
L'enumerazione della parola chiave identifica un tipo enumerato.
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
tag
-
Specifica un tag facoltativo per il tipo enumerato.
-
identifier
-
Specifica l'enumerazione specifica.
-
integer-value
-
Specifica un valore intero costante.
I tipi enumerazione possono essere visualizzati come identificatori di tipo nelle dichiarazioni typedef , nelle dichiarazioni generali e nei dichiaratori di funzione (come tipo di funzione-return-type o come identificatore di tipo parametro). Per il contesto in cui vengono visualizzati gli identificatori di tipo, vedere File IDL (Interface Definition).
Nella modalità predefinita del compilatore MIDL è possibile assegnare valori integer agli enumeratori. Questa funzionalità non è disponibile quando si compila con l'opzione /osf . Come per gli enumeratori del linguaggio C, i nomi dell'enumeratore devono essere univoci, ma i valori dell'enumeratore non devono essere.
Quando gli operatori di assegnazione non vengono forniti, gli identificatori vengono mappati a interi consecutivi da sinistra a destra, a partire da zero. Quando vengono forniti operatori di assegnazione, i valori assegnati iniziano dal valore assegnato più di recente.
Il numero massimo di identificatori è 65.535.
Gli oggetti di tipo enumerazione sono tipi int e le relative dimensioni dipendono dal sistema. Per impostazione predefinita, gli oggetti dei tipi di enumerazione vengono considerati come oggetti a 16 bit di tipo senza segnoquando trasmessi su una rete. I valori all'esterno dell'intervallo 0 - 32.767 causano l'eccezione di runtime RPC_X_ENUM_VALUE_OUT_OF_RANGE. Per trasmettere gli oggetti come entità a 32 bit, applicare l'attributo [v1_enum] al typedef enumerazione .
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;