switch_type (atributo)
El atributo [switch_type] identifica el tipo de la variable utilizada como discriminante de unión. El tipo de modificador puede ser un tipo entero, carácter, booleano o enumeración.
switch_type(switch-type-specifier)
Parámetros
-
switch-type-specifier
-
Especifica un tipo int, char, Boolean o enum , o un identificador de este tipo.
Observaciones
Aunque el atributo [switch_type] identifica el tipo de variable, el atributo [switch_is] especifica el nombre del parámetro que es la unión discriminante. El atributo [switch_type] se aplica a parámetros o miembros de estructuras o uniones.
La unión y su discriminante deben especificarse en el mismo nivel lógico. Cuando la unión es un parámetro, el discriminante de unión debe ser otro parámetro. Cuando la unión es un campo de una estructura, el discriminante debe ser otro campo de la estructura en el mismo nivel que el campo de unión.
Ejemplos
typedef [switch_type(short)] union _WILLIE_UNION_TYPE
{
[case(24)]
float fMays;
[case(25)]
double dMcCovey;
[default]
;
} WILLIE_UNION_TYPE;
typedef struct _WINNER_TYPE
{
[switch_is(sUniformNumber)] WILLIE_UNION_TYPE w;
short sUniformNumber;
} WINNER_TYPE;
Vea también