Атрибут arrays
Массивы — это однородные коллекции данных, к которым обращается индекс или номер элемента.
typedef [ [type-attr-list] ] type-specifier [pointer-decl] array-declarator;
typedef [ [type-attr-list] ] struct [ tag ]
{
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
...
};
typedef [ [type-attr-list] ] union [ tag ]
{
[ case (limited-expression [ , ... ] ) ]
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
[ [ default ]
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
]
};
[[ [function-attribute-list] ]] type-specifier [[pointer-decl]] function-name(
[[ [param-attr-list] ]] type-specifier [[pointer-decl]] array-declarator
, ...);
-
type-attr-list
-
Задает ноль или несколько атрибутов, которые применяются к типу. Допустимые атрибуты типа: [handle], [switch_type], [transmit_as]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [context_handle], [строка] и [ignore]. Разделяйте несколько атрибутов запятыми.
-
описатель типа
-
Указывает идентификатор типа, базовый тип, структуру, объединение или тип перечисления . Спецификация типа может включать необязательную спецификацию хранилища.
-
pointer-decl
-
Указывает ноль или более деклараторов указателей. Декларатор указателя совпадает с декларатором указателя, используемым в C, созданным * из конструктора, модификаторов, таких как far, и const квалификатора.
-
Декларатор массива
-
Задает имя массива, за которым следует одна из следующих конструкций для каждого измерения массива: "[ ]", "[*]", "[const1]" или "[lower... upper]", где lower и upper — это константные значения, представляющие нижнюю и верхнюю границы. Значение константы ниже должно быть равно нулю.
-
Тег
-
Указывает необязательный тег для структуры или объединения.
-
field-attribute-list
-
Указывает ноль или несколько атрибутов поля, которые применяются к структуре, члену объединения или параметру функции. Допустимые атрибуты полей: [first_is], [last_is], [length_is], [max_is], [size_is]; атрибуты использования [string], и [ignore]; атрибуты указателя [ref], [unique], и [ptr]; и атрибут union [switch_type]. Разделяйте несколько атрибутов полей запятыми. Обратите внимание, что из перечисленных выше атрибутов [first_is], [last_is] и [ignore] недопустимы для объединений.
-
limited-expression
-
Задает выражение языка C. Компилятор MIDL поддерживает условные выражения, логические выражения, реляционные выражения и арифметические выражения. MIDL не разрешает вызовы функций в выражениях, а также операторы приращения и декремента.
-
function-attribute-list
-
Задает ноль или несколько атрибутов, применяемых к функции. Допустимые атрибуты функции: [callback], [local]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [строка], и [context_handle].
-
имя функции
-
Указывает имя удаленной процедуры.
-
param-attr-list
-
Указывает атрибуты направления и один или несколько необязательных атрибутов поля, применяемых к параметру массива. Допустимые атрибуты полей: [max_is], [size_is], [length_is], [first_is] и [last_is].
Массивы в MIDL используют стиль, аналогичный C и C++, но не совпадает с ним. Дополнительные сведения см. в разделе Массивы MIDL.