CHAINLST プログラムは、最初の SALARY-REC レコード域のアドレスを取得する際に、 次のようにしてプログラム CHAINANC を呼び出します。
CALL "CHAINANC" USING PTR-FIRST
PTR-FIRST は、呼び出し側プログラム (CHAINLST) の WORKING-STORAGE にポインター・データ項目として定義されています。
WORKING-STORAGE SECTION. 77 PTR-FIRST POINTER VALUE IS NULL.
CHAINANC に対する呼び出しから戻る時点で、PTR-FIRST にはチェーン・リスト中の最初のレコードのアドレスが入れられています。
PTR-FIRST は、最初は論理チェックとしてのヌル値に定義されています。 呼び出しエラーが起こり、かつ PTR-FIRST がチェーン中の最初のレコードのアドレス値を受け取ることがない場合、PTR-FIRST はヌル値のままになり、 プログラムのロジックによって、レコードの処理は行われなくなります。
NULL は、無効なアドレス値をポインター項目に代入するのに使用される形象定数です。 NULL は VALUE IS NULL 文節、SET ステートメント、およびポインターとの関係条件オペランドとして使用されます。
呼び出し側プログラムの LINKAGE SECTION には、チェーン・リスト中の最初のレコードに関する記述が入れられます。 また、CALL ステートメントの USING 句を使用して渡される部門コードに関する記述も含まれています。
LINKAGE SECTION. 01 SALARY-REC. 05 PTR-NEXT-REC POINTER. 05 NAME PIC X(20). 05 DEPT PIC 9(4). 05 SALARY PIC 9(6). 01 DEPT-X PIC 9(4).
レコード記述 SALARY-REC を PTR-FIRST 中のアドレスに基づくものにするには、次のように SET ステートメントを使用してください。
CALL "CHAINANC" USING PTR-FIRST SET ADDRESS OF SALARY-REC TO PTR-FIRST
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.