構造体の宣言の書式を以下に示します。
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];
};