struct 属性

構造体キーワード (keyword)は、構造体型指定子で使用されます。

struct [[ struct-tag ]] 
{
  [[ [ field-attribute-list ] ]] type-specifier declarator-list;
    ...
};

パラメーター

struct-tag

構造体の省略可能なタグを指定します。

field-attribute-list

構造体メンバーに適用される 0 個以上のフィールド属性を指定します。 有効なフィールド属性には、[first_is]、[last_is]、[length_is]、[max_is]、[size_is]が含まれます。使用法属性 [string][ignore];ポインター属性 [ref][unique]、または [ptr];union 属性 [switch_type]。 複数のフィールド属性をコンマで区切ります。

type-specifier

基本型構造体共用体、または列挙型または型識別子を指定します。 省略可能なストレージ仕様は 、型指定子の前に置くことができます。

declarator-list

識別子、ポインター宣言子、配列宣言子など、1 つ以上の標準 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

Enum

first_is

インターフェイス定義 (IDL) ファイル

無視

last_is

length_is

max_is

/Osf

Ptr

参考

size_is

文字列

switch_type

連合

unique