атрибут enum
Перечисление ключевое слово определяет перечислимый тип.
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
Тег
-
Указывает необязательный тег для перечисленного типа.
-
identifier
-
Указывает конкретное перечисление.
-
целое число-значение
-
Задает константное целочисленное значение.
Типы enum могут отображаться в качестве описателей типов в объявлениях typedef, общих объявлениях и деклараторах функций (в качестве функции return-type или в качестве описателя типа параметра). Контекст, в котором отображаются описатели типов, см. в разделе Файл определения интерфейса (IDL).
В режиме по умолчанию компилятора MIDL можно назначить перечислителям целочисленные значения. (Эта функция недоступна при компиляции с параметром /osf .) Как и в случае с перечислителями языка C, имена перечислителей должны быть уникальными, но значения перечислителя не обязательно должны быть.
Если операторы присваивания не указаны, идентификаторы сопоставляются с последовательными целыми числами слева направо, начиная с нуля. При указании операторов присваивания назначенные значения начинаются с последнего назначенного значения.
Максимальное число идентификаторов — 65 535.
Объекты типа enum являются типами int , а их размер зависит от системы. По умолчанию объекты типа перечисления обрабатываются как 16-разрядные объекты типа unsignedshort при передаче по сети. Значения за пределами диапазона от 0 до 32 767 вызывают исключение во время выполнения RPC_X_ENUM_VALUE_OUT_OF_RANGE. Чтобы передать объекты в виде 32-разрядных сущностей, примените атрибут [v1_enum] к значению typedef перечисления .
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;