COBOL2002 言語 拡張仕様編
16.3.2 CALL文(BY VALUE指定)(C言語インタフェース機能)
- 形式
- 書き方1
- 書き方2
- 注※
- CALL文で定数1が指定されたときだけ指定できる。
- 機能
- BY VALUE指定は,COBOLプログラムからCOBOLプログラムまたはC言語で記述されたプログラムを呼び出す場合に,COBOLプログラムまたはC言語のプログラムでパラメタを値渡しで受け取るときに指定する。
- 構文規則
- 一意名3,一意名4は,部分参照されてはいけない。
- 一意名3は,可変長集団項目を指定してはならない。
- 定数2は,英数字定数,数字定数または表意定数ZEROでなければならない。
- 定数2が数字定数のとき,9けた以下で小数点の指定があってはならない。
- CALL文のRETURNINGを指定すると,COBOLプログラムからCOBOLプログラムまたはC言語で記述されたプログラムを呼び出す場合に,復帰情報以外の値を受け取れる。
- CALL文のRETURNING指定には,呼び出し先から返された値を設定するデータ項目を指定する。
- 一般規則
- BY REFERENCE指定,BY VALUE指定は,別のBY REFERENCE指定,BY VALUE指定が現れるまで,それに続くデータ名に対して有効となる。
- 最初のデータ名の前にBY VALUE,BY REFERENCE,BY CONTENTのどの指定もない場合,BY REFERENCE指定が仮定される。
- PROCEDURE DIVISIONのBY REFERENCE指定は,CALL文のBY REFERENCE指定,BY CONTENT指定に対応していなければならない。
- CALL BY VALUEの定数とPROCEDURE BY VALUEの受け取り側作用対象との関係およびBY VALUE指定のデータ項目とC言語の引数指定の関係については,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」を参照のこと。
- 呼び出し元プログラムと呼び出し先プログラムが,COBOLプログラムの場合,CALL文でRETURNING指定をすると,呼び出し先で復帰情報が設定されていても,呼び出し元の,RETURN-CODE特殊レジスタで復帰情報を参照できない。
- 呼び出し元プログラムと呼び出し先プログラムがCOBOLプログラムの場合,手続き部見出しにRETURNING指定がされていないならば,CALL文にRETURNING指定をしてはいけない。手続き部見出しにRETURNING指定がされているならば,CALL文にRETURNING指定をしなければならない。
CALL文のRETURNING指定のデータ項目と,呼び出し先プログラムの手続き部見出しのデータ項目の長さおよび用途は同じでなければならない。
- 同一外部プログラムを複数のCALL文に指定した場合,RETURNINGの指定ありと,指定なしが混在してはならない。また,RETURNINGの指定がある場合はそれぞれのRETURNINGに指定されたデータ項目の長さおよび用途は同じでなければならない。
- 外部プログラムを呼び出す場合,RETURNINGに指定されたデータ項目の属性で戻り値を参照する。
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 10.8.4 CALL文
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.