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

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