Atributo switch_type
O atributo [switch_type] identifica o tipo da variável usada como discriminante de união. O tipo de comutador pode ser um tipo inteiro, caractere, booliano ou enumeração.
switch_type(switch-type-specifier)
-
switch-type-specifier
-
Especifica um tipo int, char, booliano ou enumerado ou um identificador desse tipo.
Embora o atributo [switch_type] identifique o tipo de variável, o atributo [switch_is] especifica o nome do parâmetro que é o discriminador de união. O atributo [switch_type] aplica-se a parâmetros ou membros de estruturas ou uniões.
A união e seu discriminador devem ser especificados no mesmo nível lógico. Quando a união é um parâmetro, o discriminador de união deve ser outro parâmetro. Quando a união é um campo de uma estrutura, o discriminador deve ser outro campo da estrutura no mesmo nível que o campo união.
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;