Leggere in inglese

Condividi tramite


attributo enumerazione

L'enumerazione della parola chiave identifica un tipo enumerato.

enum [tag ] 
{ 
    identifier [=integer-value ] 
    [ , ... ] 
}

Parametri

tag

Specifica un tag facoltativo per il tipo enumerato.

identifier

Specifica l'enumerazione specifica.

integer-value

Specifica un valore intero costante.

Commenti

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 .

Esempi

typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays; 
 
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;

Vedere anche

File IDL (Interface Definition)

int

short

Typedef

Unsigned

v1_enum