Atributo de enumeração
A enumeração palavra-chave identifica um tipo enumerado.
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
tag
-
Especifica uma marca opcional para o tipo enumerado.
-
identifier
-
Especifica a enumeração específica.
-
integer-value
-
Especifica um valor inteiro constante.
Os tipos de enumeração podem aparecer como especificadores de tipo em declarações typedef, declarações gerais e declaradores de função (como o tipo de função-retorno ou como um especificador de tipo de parâmetro). Para o contexto no qual os especificadores de tipo aparecem, consulte Arquivo de Definição de Interface (IDL).
No modo padrão do compilador MIDL, você pode atribuir valores inteiros a enumeradores. (Esse recurso não está disponível quando você compila com a opção /osf .) Assim como acontece com os enumeradores de linguagem C, os nomes do enumerador devem ser exclusivos, mas os valores do enumerador não precisam ser.
Quando os operadores de atribuição não são fornecidos, os identificadores são mapeados para inteiros consecutivos da esquerda para a direita, começando com zero. Quando os operadores de atribuição são fornecidos, os valores atribuídos começam a partir do valor atribuído mais recentemente.
O número máximo de identificadores é 65.535.
Objetos do tipo enum são tipos int e seu tamanho depende do sistema. Por padrão, objetos de tipos de enumeração são tratados como objetos de 16 bits do tipo curto sem sinal quando transmitidos por uma rede. Valores fora do intervalo de 0 a 32.767 causam a exceção em tempo de execução RPC_X_ENUM_VALUE_OUT_OF_RANGE. Para transmitir objetos como entidades de 32 bits, aplique o atributo [v1_enum] ao typedef de enumeração .
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;