Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

共用体

共用体 とは、相互にオーバーレイし合い、 同じストレージを有するメンバー・エレメントの集合です。 メンバーは、構造体、共用体、要素変数、および配列であることができます。 それらは同じ属性を持つ必要はありません。

共用体全体には、データの集合全体で参照できる名前が付けられます。 構造体と同様、共用体の各エレメントもそれぞれ名前が付けられます。 アスタリスクは、共用体の名前、または共用体が参照されない場合は メンバーの名前として使用できます。 例えば、予約項目や充てん文字項目をアスタリスクで指定することができます。

構造体と同様、共用体はどのようなレベル (レベル 1 を含む) にもなります。次に低いレベルの共用体のすべてのエレメントは、 共用体のメンバーであり、同じストレージを有します。 共用体によって占められるストレージは、 最大メンバーに必要なストレージと等しくなります。 通常、どのような場合でも使用されるメンバーは 1 つだけで、 プログラマーが使用されるメンバーを決定します。

共用体は、構造体と同様、それぞれの名前の前にレベル番号を 付けるという方法によって指定します。

共用体は、一般的に共通部、選択部、および可変部からなる 可変レコードの宣言に使用されます。 例えば、クライアント・ファイルのレコードは、次のように宣言されます。

  Declare 1 Client,
            2 Number pic '999999',
            2 Type bit(1),
            2 * bit(7),
            2 Name union,
              3 Individual,
                5 Last_Name char(20),
                5 First_Name union,
                  7 First   char(15),
                  7 Initial char(1),
              3 Company char(35),
            2 * char(0);

この例では、Client が大構造体です。 構造体 Individual とエレメント Company は、 共用体 Name のメンバーです。 これらメンバーのうちの 1 つが、Type に応じてアクティブになります。 構造体 Individual には、 共用体 First_name とエレメント Last_name が含まれています。 共用体 First_name は、 FirstInitial をメンバーとして持ち、 両方ともアクティブです。 またこの例では、アスタリスクを名前として使用しています。 共用体の記述は、DECLARE ステートメントを終了するセミコロンまでで 終了するか、コンマによって終了します (コンマの場合、 別の項目の宣言があとに続きます)。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)