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]“,其中 lowerupper 是表示下限和上限的常量值。 下限常量的计算结果必须为零。

标签

指定结构或联合的可选标记。

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 数组

另请参阅

回调 (callback)

const

context_handle

枚举

first_is

处理

接口定义 (IDL) 文件

忽略

last_is

length_is

当地

max_is

Ptr

裁判

size_is

string

结构

switch_type

transmit_as

联盟

unique