ページの先頭行へ戻る
Interstage Application Server V13.0.0 アプリケーション作成ガイド(CORBAサービス編)
FUJITSU Software

A.7.4 構造体

構造体の宣言の書式を以下に示します。

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];
};