COBOL2002 言語 拡張仕様編


16.3.2 CALL文(BY VALUE指定)(C言語インタフェース機能)

形式

書き方1

[図データ]

書き方2

[図データ]

注※

CALL文で定数1が指定されたときだけ指定できる。

機能

BY VALUE指定は,COBOLプログラムからCOBOLプログラムまたはC言語で記述されたプログラムを呼び出す場合に,COBOLプログラムまたはC言語のプログラムでパラメタを値渡しで受け取るときに指定する。

構文規則
  1. 一意名3,一意名4は,部分参照されてはいけない。

  2. 一意名3は,可変長集団項目を指定してはならない。

  3. 定数2は,英数字定数,数字定数または表意定数ZEROでなければならない。

  4. 定数2が数字定数のとき,9けた以下で小数点の指定があってはならない。

  5. CALL文のRETURNINGを指定すると,COBOLプログラムからCOBOLプログラムまたはC言語で記述されたプログラムを呼び出す場合に,復帰情報以外の値を受け取れる。

  6. CALL文のRETURNING指定には,呼び出し先から返された値を設定するデータ項目を指定する。

一般規則
  1. BY REFERENCE指定,BY VALUE指定は,別のBY REFERENCE指定,BY VALUE指定が現れるまで,それに続くデータ名に対して有効となる。

  2. 最初のデータ名の前にBY VALUE,BY REFERENCE,BY CONTENTのどの指定もない場合,BY REFERENCE指定が仮定される。

  3. PROCEDURE DIVISIONのBY REFERENCE指定は,CALL文のBY REFERENCE指定,BY CONTENT指定に対応していなければならない。

  4. CALL BY VALUEの定数とPROCEDURE BY VALUEの受け取り側作用対象との関係およびBY VALUE指定のデータ項目とC言語の引数指定の関係については,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」を参照のこと。

  5. 呼び出し元プログラムと呼び出し先プログラムが,COBOLプログラムの場合,CALL文でRETURNING指定をすると,呼び出し先で復帰情報が設定されていても,呼び出し元の,RETURN-CODE特殊レジスタで復帰情報を参照できない。

  6. 呼び出し元プログラムと呼び出し先プログラムがCOBOLプログラムの場合,手続き部見出しにRETURNING指定がされていないならば,CALL文にRETURNING指定をしてはいけない。手続き部見出しにRETURNING指定がされているならば,CALL文にRETURNING指定をしなければならない。

    CALL文のRETURNING指定のデータ項目と,呼び出し先プログラムの手続き部見出しのデータ項目の長さおよび用途は同じでなければならない。

  7. 同一外部プログラムを複数のCALL文に指定した場合,RETURNINGの指定ありと,指定なしが混在してはならない。また,RETURNINGの指定がある場合はそれぞれのRETURNINGに指定されたデータ項目の長さおよび用途は同じでなければならない。

  8. 外部プログラムを呼び出す場合,RETURNINGに指定されたデータ項目の属性で戻り値を参照する。

【標準仕様との関連】

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