switch_type-Attribut

Das [switch_type]- Attribut identifiziert den Typ der Variablen, die als Union-Diskriminant verwendet wird. Der Switchtyp kann eine ganze Zahl, ein Zeichen, ein boolescher Typ oder ein Enumerationstyp sein.

switch_type(switch-type-specifier)

Parameter

switch-type-spezifizierer

Gibt einen int-, char-, booleschen oder enum-Typ oder einen Bezeichner eines solchen Typs an.

Bemerkungen

Während das [switch_type]- Attribut den Variablentyp identifiziert, gibt das [switch_is] -Attribut den Namen des Parameters an, der die Union-Unterscheidung darstellt. Das [switch_type] -Attribut gilt für Parameter oder Member von Strukturen oder Unions.

Die Union und ihre Diskriminanz müssen auf derselben logischen Ebene angegeben werden. Wenn union ein Parameter ist, muss der Union-Diskriminant ein anderer Parameter sein. Wenn die Union ein Feld einer Struktur ist, muss der Diskriminant ein weiteres Feld der Struktur auf derselben Ebene wie das Union-Feld sein.

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_is

union