DEFINE STRUCTURE ステートメントは名前付き構造体または 共用体タイプを指定します。
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);