switch_type (attributo)
L'attributo [switch_type] identifica il tipo della variabile usata come discriminante di unione. Il tipo di opzione può essere un tipo integer, carattere, booleano o enumerazione.
switch_type(switch-type-specifier)
-
switch-type-specifier
-
Specifica un tipo int, char, booleano o enumerazione o un identificatore di tale tipo.
Mentre l'attributo [switch_type] identifica il tipo di variabile, l'attributo [switch_is] specifica il nome del parametro che rappresenta la discriminante unione. L'attributo [switch_type] si applica a parametri o membri di strutture o unioni.
L'unione e la relativa discriminante devono essere specificate allo stesso livello logico. Quando l'unione è un parametro, il discriminante dell'unione deve essere un altro parametro. Quando l'unione è un campo di una struttura, il discriminante deve essere un altro campo della struttura allo stesso livello del campo unione.
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;