構造体の宣言の書式を以下に示します。
struct データ型名 {
構造体メンバの宣言
};構造体メンバの宣言の書式を以下に示します。typedefは、使用しません。
基本データ型 メンバ名; シーケンス型 メンバ名; 構造体 メンバ名; 共用体 メンバ名; 固定小数点型 メンバ名; スコープ名 メンバ名;
メンバ名には、単独の識別子/配列を指定します。
構造体メンバは、1つ以上必要です。空の構造体は、許されていません。
例
構造体の記述例を以下に示します。
module A {
typedef long B;
};
struct S {
string name;
short number;
long value;
::A::B s;
};再帰的な型宣言は、シーケンス型を使用したものだけが許されています。
struct aaa {
long l;
sequence<aaa> bbb;
};構造体名を定義するために、typedefを使用することもできます。
注意
IDLのstruct型は、C言語のstruct型と異なり、構造体の宣言を意味します。このため、構造体のメンバに構造体を宣言する場合は、以下のように記述します。
struct A {
char xx;
};
struct B {
A yy;
};IDLのstruct型で構造体のメンバに構造体を宣言する場合、以下のように配列型のメンバ名にstruct構造体名と同じ名前を指定できません。
struct A {
char xx;
};
struct B {
A A[5];
};