atributo enum
La enumeración de palabra clave identifica un tipo enumerado.
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
tag
-
Especifica una etiqueta opcional para el tipo enumerado.
-
identifier
-
Especifica la enumeración determinada.
-
integer-value
-
Especifica un valor entero constante.
Los tipos de enumeración pueden aparecer como especificadores de tipo en declaraciones typedef, declaraciones generales y declaradores de función (ya sea como function-return-type o como especificador de tipo parámetro). Para ver el contexto en el que aparecen los especificadores de tipo, vea Archivo de definición de interfaz (IDL).
En el modo predeterminado del compilador MIDL, puede asignar valores enteros a enumeradores. (Esta característica no está disponible cuando se compila con el modificador /osf ). Al igual que con los enumeradores del lenguaje C, los nombres del enumerador deben ser únicos, pero no es necesario que los valores del enumerador.
Cuando no se proporcionan operadores de asignación, los identificadores se asignan a enteros consecutivos de izquierda a derecha, empezando por cero. Cuando se proporcionan operadores de asignación, los valores asignados comienzan desde el valor asignado más recientemente.
El número máximo de identificadores es de 65 535.
Los objetos de enumeración de tipo son tipos int y su tamaño depende del sistema. De forma predeterminada, los objetos de tipos de enumeración se tratan como objetos de 16 bits de tipo unsignedshort cuando se transmiten a través de una red. Los valores fuera del intervalo 0 a 32 767 provocan la excepción en tiempo de ejecución RPC_X_ENUM_VALUE_OUT_OF_RANGE. Para transmitir objetos como entidades de 32 bits, aplique el atributo [v1_enum] a la definición de tipo de enumeración .
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;