struct 属性
结构关键字 (keyword) 用于结构类型说明符。
struct [[ struct-tag ]]
{
[[ [ field-attribute-list ] ]] type-specifier declarator-list;
...
};
-
struct-tag
-
指定结构的可选标记。
-
field-attribute-list
-
指定应用于结构成员的零个或多个字段属性。 有效的字段属性包括 [first_is]、 [last_is]、 [length_is]、 [max_is]和 [size_is];用法属性 [string] 和 [ignore];指针属性 [ref]、 [unique]或 [ptr];和联合属性 [switch_type]。 用逗号分隔多个字段属性。
-
type-specifier
-
declarator-list
-
指定一个或多个标准 C 声明符,例如标识符、指针声明符和数组声明符。 (在远程过程调用中传输的结构中不允许使用函数声明符和位字段声明。这些声明符在未传输的结构中是允许的。) 用逗号分隔多个声明符。
IDL 结构类型说明符 (结构)在以下方面不同于标准 C 类型说明符:
- 每个结构成员都可以与描述结构成员特征的可选字段属性相关联,以便进行远程过程调用。
- 不允许在远程过程调用中使用的结构中使用位字段和函数声明符。 仅当结构未在网络上传输时,才能使用这些标准 C 声明符构造。
结构的形状必须跨平台相同,以确保互连。
typedef struct _PITCHER_RECORD_TYPE
{
short flag;
[switch_is(flag)] union PITCHER_STATISTICS_TYPE p;
} PITCHER_RECORD_TYPE;