switch_type (attribut)
L’attribut [switch_type] identifie le type de la variable utilisée comme discriminant d’union. Le type de commutateur peut être un entier, un caractère, un type booléen ou un type d’énumération.
switch_type(switch-type-specifier)
Paramètres
-
switch-type-specifier
-
Spécifie un type int, char, Boolean ou enum , ou un identificateur d’un tel type.
Notes
Alors que l’attribut [switch_type] identifie le type de variable, l’attribut [switch_is] spécifie le nom du paramètre qui est le discriminant d’union. L’attribut [switch_type] s’applique aux paramètres ou aux membres de structures ou d’unions.
L’union et son discriminant doivent être spécifiés au même niveau logique. Lorsque l’union est un paramètre, le discriminant d’union doit être un autre paramètre. Lorsque l’union est un champ d’une structure, le discriminant doit être un autre champ de la structure au même niveau que le champ union.
Exemples
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;
Voir aussi