switch_type - атрибут

Атрибут [switch_type] определяет тип переменной, используемой в качестве дискриминанта объединения. Тип параметра может быть целым числом, символом, логическим типом или типом перечисления.

switch_type(switch-type-specifier)

Параметры

switch-type-specifier

Указывает тип int, char, boolean или перечисления либо идентификатор такого типа.

Комментарии

В то время как атрибут [switch_type] определяет тип переменной, атрибут [switch_is] указывает имя параметра, который является дискриминантом объединения. Атрибут [switch_type] применяется к параметрам или членам структур или объединений.

Объединение и его дискриминант должны быть указаны на одном и том же логическом уровне. Если объединение является параметром, дискриминант объединения должен быть другим параметром. Если объединение является полем структуры, дискриминант должен быть другим полем структуры на том же уровне, что и поле объединения.

Примеры

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;

См. также раздел

Логических

Char

Инкапсулированные объединения

Перечисления

Файл определения интерфейса (IDL)

INT

Некапсулированные объединения

switch_is

union