結構屬性

結構類型規範中使用 struct 關鍵字。

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

指定 基底類型結構等位列舉 類型或類型識別碼。 選擇性的儲存體規格可以在 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;

另請參閱

陣 列

陣列和指標

陣列和Sized-Pointer屬性

MIDL 基底類型

/c_ext

coNtext_handle

枚舉

first_is

介面定義 (IDL) 檔案

忽略

last_is

length_is

max_is

/osf

Ptr

ref

size_is

string

switch_type

聯盟

獨特