COBOL2002 言語 拡張仕様編


25.4.5 CALL文の引数指定の拡張

形式(書き方1,書き方2共に共通部分だけ)

[図データ]

構文規則

  1. 定数3,定数4は,英数字定数,小数点のない9けた以内の数字定数,浮動小数点数字定数,および表意定数ZEROでなければならない。ただし,定数4には表意定数NULLも指定できる。

  2. ADDRESS OFに指定する一意名5がブール項目のときは,バイト境界に調整しておかなければならない。

  3. ADDRESS OF 一意名やLENGTH OF 一意名は,ファイル節,作業場所節,局所場所節,連絡節または画面節(WINDOW SECTION)で定義したデータ項目でなくてはならない。したがって,関数一意名やオブジェクトプロパティであってはならない。また,ADDRESS OFの一意名は,ファクトリ定義やインスタンス定義で定義されたデータ項目であってはならない。

  4. ADDRESS OF 一意名は,オブジェクト参照データ項目であってはならない。また,強く型付けされた集団項目に従属する基本項目を指すものであってはならない。

  5. ADDRESS OF 一意名は,強く型付けされた集団項目であってはならない。

一般規則

  1. ADDRESS OF 一意名5を指定している場合,呼び出し先プログラムに渡される値は,一意名5のアドレスである。呼び出し先プログラムは,[BY REFERENCE] データ名で引数を受け取る。データ名の属性は,アドレスデータ項目でなければならない。

  2. LENGTH OF 一意名6を指定している場合,呼び出し先プログラムに渡される値は,一意名6の長さである。呼び出し先プログラムは,[BY REFERENCE]/BY VALUE データ名で引数を受け取る。データ名の属性は, 4バイト(64bit版 COBOL2002の場合は,8バイト)の2進項目でなければならない。

  3. 定数3を指定している場合,呼び出し先プログラムに渡される値は,定数値である。呼び出し先プログラムは,[BY REFERENCE]データ名で引数を受け取る。データ名の属性は,指定された定数の種類によって異なる。受け取るデータ名の属性を次に示す。

    (a)英数字定数:指定した定数と同じ長さの項目

    (b)数字定数/表意定数ZERO:4バイトの2進項目

    (c)浮動小数点定数:USAGE COMP-2の項目(倍精度内部浮動小数点数字項目)

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.4 CALL文