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

タイプ付き構造体と共用体の定義

DEFINE STRUCTURE ステートメントは名前付き構造体または 共用体タイプを指定します。

構文図を読む構文図をスキップする>>-DEFINE--STRUCTURE--1--structure-type-name--+-------+--,------>
                                              '-UNION-'
 
   .-,-----------------------------------------.
   V                                           |
>----level minor-structure-name--+-----------+-+--;------------><
                                 '-attribute-'
 
structure-type-name
この構造体タイプに与えられた名前を指定します (大構造体についての詳細な情報は、構造体を参照してください)。 この名前は次元を持つことはできませんが、副構造体を持つことはできます。
UNION
UNION 属性で説明されています。
minor-structure-name
下のレベルに与えられた名前を指定します。 (小構造体についての詳細な情報は 構造体を参照してください。)
attributes
小構造体名についての属性を指定します。 データ属性のみが指定できます。

DEFINE STRUCTURE ステートメントに指定された任意のストリングの長さ、領域サイズ、 または配列次元が制限された式でなければなりません。

欠落しているデータ属性は PL/I デフォルトを使用して提供されます。

以下の制約事項に留意してください。

たとえば、構造体に、最も厳しく位置合わせされた項目である、位置合わせされた fixed bin(31) フィールドが含まれている場合、その制約事項は以下のようになります。

DEFINE STRUCTURE ステートメントは「強い」タイプを定義します。 言いかえると、そのタイプで宣言された変数は 同じタイプを持つ変数 (またはパラメーター) にのみ割り当てることができます。 タイプ付き構造体をデータ・ディレクティブ入出力ステートメントに使用することはできません。

定義する構造体名だけを指定し、メンバーを指定しない DEFINE STRUCTURE ステートメントは、「指定されていない構造体」を定義します。

指定されていない構造体の定義は、構造体の定義に 2 つ目の構造体へのハンドルが あって、2 つ目の構造体にも 1 つ目の構造体へのハンドルがある場合に役立ちます。 たとえば次の例では、親構造体に子構造体へのハンドルがあり、 一方で子構造体にも親構造体へのハンドルがあります。

   define structure 1 child;

   define structure
    1 parent,
      2 first_child   handle child,
      2 parent_data   fixed bin(31);

   define structure
    1 child,
      2 parent        handle parent,
      2 next_child    handle child,
      2 child_data    fixed bin(31);

Terms of use | Feedback

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