LIKEDS キーワードは、データ構造、データ構造のサブフィールド、プロトタイプされた戻り値、または プロトタイプ・パラメーターを、別のデータ構造と同様に定義するために使用します。 新たな項目のサブフィールドは、LIKEDS キーワードのパラメーターとして指定されている親データ構造のサブフィールドと同じになります。
LIKEDS を使用して定義されているデータ構造は、親データ構造が修飾されていない場合でも、 自動的に修飾されます。 サブフィールドは、修飾表記 DSNAME.SUBFIELDNAME を使用して参照する必要があります。 親データ構造に名前が付いていないサブフィールドがある場合、 子データ構造も同じ名前無しのサブフィールドを持ちます。
LIKEDS は、修飾されたデータ構造のサブフィールドに関してコーディングすることができます。 LIKEDS がデータ構造のサブフィールド定義でコーディングされる場合、 サブフィールドのデータ構造は自動的に QUALIFIED として定義されます。 LIKEDS サブフィールドのデータ構造のサブフィールドは、完全修飾形式 "ds.subf.subfa" で 参照されます。LIKEDS を使用して定義されたサブフィールドは、 それ自体がデータ構造であり、データ構造が必要な任意の場所で使用することができます。
ALIGN キーワードおよび ALTSEQ キーワードの値は、新しいデータ構造によって継承されます。OCCURS、DIM、NOOPT、および INZ の各キーワードの値は継承されません。 親データ構造と同じ方法でサブフィールドを初期化するには、INZ(*LIKEDS) を指定します。
* Data structure qualDs is a qualified data structure * with two named subfields and one unnamed subfield D qualDs DS QUALIFIED D a1 10A D 2A D a2 5P 0 DIM(3) * Data structure unqualDs is a non-qualified data structure * with one named subfield and one unnamed subfield D unqualDs DS D b1 5A D 5A * Data structure likeQual is defined LIKEDS(qualDs) D likeQual DS LIKEDS(qualDs) * Data structure likeUnqual is defined LIKEDS(unqualDs) D likeUnqual DS LIKEDS(unqualDs) /FREE // Set values in the subfields of the // parent data structures. qualDs.a1 = 'abc'; qualDs.a2(1) = 25; b1 = 'xyz'; // Set values in the subfields of the // child data structures. likeQual.a1 = 'def'; likeQual.a2(2) = -250; likeUnqual.b1 = 'rst'; // Display some of the subfields dsply likeQual.a1; // displays 'def' dsply b1; // displays 'xyz'
D sysName DS qualified D lib 10A inz('*LIBL') D obj 10A D userSpace DS LIKEDS(sysName) INZ(*LIKEDS) // The variable "userSpace" was initialized with *LIKEDS, so the // first 'lib' subfield was initialized to '*LIBL'. The second // 'obj' subfield must be set using a calculation. C eval userSpace.obj = 'TEMPSPACE'
P createSpace B D createSpace PI D name LIKEDS(sysName) /free if name.lib = *blanks; name.lib = '*LIBL'; endif; QUSCRTUS (name : *blanks : 4096 : ' ' : '*USE' : *blanks); /end-free P createSpace E
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.