Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
付録A IDL定義 | > A.7 データ型と型宣言 |
以下に共用体の宣言の形式を示します。
union データ型名 switch (データ型) { case 定数式 ; 要素 [, ..] : default; 要素 [, ..] : }; |
要素の形式を以下に示します(typedefは使用しません)。
基本データ型 要素名; シーケンス型 要素名; 構造体 要素名; 共用体 要素名; 固定小数点型 要素名; スコープ名 要素名; |
要素名には単独の識別子か配列を指定します。
IDLの共用体は、C言語の共用体とswitch文とを合わせたものです。IDLの共用体の要素をcase文に関連付けて定義する必要があります。共用体のswitch文の型定義には、どの要素が使われるかを決定する型を指定しなければなりません。
case文の定数式はswitch文の型定義と一貫性を持たなければなりません。定数式は0〜65535の間の値を指定します。case文のdefaultは1回だけの使用しか許されません。要素内のスコープ名は定義済みの整数、文字、ブーリアン、列挙型のいずれかでなければなりません。case文の定数式はswitch文の型定義で指定された型と一致しなければなりません。
以下に一致の規則を示します。
1つの共用体内で要素名は一意でなければなりません。switchで指定した型が列挙型であれば、その識別子は共用体のスコープの中に入ります。そして、その識別子は要素名と違っていなければなりません。共用体の型指定がとりうるすべての値をcase文で指定する必要はありません。共用体の値は型定義の値と、下記のいずれかからなります。
以下に共用体の記述例を示します。
union U switch (long) { case 1: long a; case 2: short b; default: char c; };
目次
索引
![]() ![]() |