_switch-Typattribut

Das [ _ ] Switchtypattribut identifiziert den Typ der Variablen, die als union-diskriminant verwendet wird. Der Switchtyp kann eine ganze Zahl, ein Zeichen, ein boolescher Wert oder ein Enumerationstyp sein.

switch_type(switch-type-specifier)

Parameter

switch-type-specifier

Gibt einen int-, char-, booleschenoder Enumerationstyp oder einen Bezeichner eines solchen Typs an.

Bemerkungen

Während das [ _ ] Switchtypattribut den Variablentyp identifiziert, gibt der [ Switch _ is-Attribut ] den Namen des Parameters an, der die Union diskriminant ist. Das [ _ ] Switchtypattribut gilt für Parameter oder Member von Strukturen oder Unions.

Die Union und ihre Diskriminanz müssen auf derselben logischen Ebene angegeben werden. Wenn die Union ein Parameter ist, muss die Union-Unterscheidung ein anderer Parameter sein. Wenn die Union ein Feld einer -Struktur ist, muss es sich bei dem diskriminanten Feld um ein anderes Feld der Struktur auf der gleichen Ebene wie das Union-Feld handelt.

Beispiele

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;

Weitere Informationen

Boolean

char

Gekapselte Unions

Enum

IDL-Datei (Interface Definition)

int

Nicht gekapselte Unions

switch _ ist

union