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];指针属性 [ref]、 [unique]或 [ptr];和用法属性 [context_handle]、 [string]和 [ignore]。 用逗号分隔多个属性。
-
type-specifier
-
pointer-decl
-
指定零个或多个指针声明符。 指针声明符与 C 中使用的指针声明符相同,由 * 指示符、修饰符(如 far)和限定符 const 构造。
-
array-declarator
-
指定数组的名称,后跟数组每个维度的以下构造之一:“[ ]”、“[*]”、“[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];指针属性 [ref]、 [unique]或 [ptr];和用法属性 [string] 和 [context_handle]。
-
function-name
-
指定远程过程的名称。
-
param-attr-list
-
指定方向属性以及应用于数组参数的一个或多个可选字段属性。 有效的字段属性包括 [max_is]、 [size_is]、 [length_is]、 [first_is] 和 [last_is]。
MIDL 中的数组使用的样式与 C 和 C++ 相似,但并不完全相同。 有关详细信息,请参阅 MIDL 数组。