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;