COBOL2002 使用の手引 手引編


17.1.3 引数の受け渡しの規則

引数の受け渡しの規則について,説明します。

〈この項の構成〉

(1) CALL文での引数の整合性チェック

プログラムのコンパイル時に引数の適合チェックのオプション(-DebugCompati,または-TDInf)を指定すると,CALL文でのプログラム間の引数の整合性をチェックできます。ただし,INVOKE文では有効となりません。

引数の整合性チェックについては,「36.5 プログラム間整合性チェック」を参照してください。

(2) CALL文での定数指定の引数

値渡し(BY VALUE指定)のCALL文では,引数に定数を指定できます。

COBOLプログラム間で定数の引数を渡す場合の型の対応について,次に示します。

表17‒1 COBOLプログラム間でのデータ項目の型の対応

受け取り側作用対象

送り出し側作用対象

呼び出し元に指定された定数

数字定数

英数字定数

浮動小数点数字定数

ZERO

NULL

固定長集団項目

×

×

×

英字項目

×

英数字項目

×

英数字編集項目

×

外部10進項目

×

内部10進項目

×

2進項目

×

数字編集項目

×

指標データ項目

×

×

×

オブジェクト参照

×

×

×

外部浮動小数点数字項目

×

単精度内部浮動小数点数字項目

×

×

×

×

×

倍精度内部浮動小数点数字項目

×

×

×

×

アドレスデータ項目

×

×

×

日本語項目

×

日本語編集項目

×

外部ブール項目

×

内部ブール項目

×

ポインタ項目

×

×

×

(凡例)

○:指定できる

空白:受け渡しできるかどうかはプラットフォームに依存するため,動作保証についてはユーザ責任とする

×:指定してはならない(指定したときの結果は保証しない)

注※

AIX(32),Linux(x86)の場合は「空白」になります。

(3) INVOKE文での定数指定の引数

値渡し(BY VALUE指定)のINVOKE文では,引数に定数を指定できます。

INVOKE文に指定された実引数と呼び起こされるメソッドの仮引数は,適合していなければなりません。双方が適合している場合,実引数のデータ属性は,仮引数に指定されたデータ属性と同様になります。

(4) INVOKE文でBY指定を省略した場合

INVOKE文でBY指定を省略した場合,指定された引数の属性,および呼び出し先メソッドに定義された引数の情報によって,仮定されるBY指定が異なります。INVOKE文でBY指定を省略した場合に仮定されるBY指定の内容について,次に示します。