COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

18.1.3 引数の受け渡しの規則

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

<この項の構成>
(1) CALL文での引数の整合性チェック
(2) CALL文での定数指定の引数
(3) INVOKE文での定数指定の引数
(4) INVOKE文でBY指定を省略した場合

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

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

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

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

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

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

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

受け取り側作用対象 送り出し側作用対象
呼び出し元に指定された定数
数字定数 英数字定数 浮動小数点数字定数 ZERO NULL
固定長集団項目 ×   × ×  
英字項目   ×    
英数字項目   ×    
英数字編集項目     ×    
外部10進項目   ×    
内部10進項目     ×    
2進項目   ×  
数字編集項目     ×    
指標データ項目 ×   × ×
オブジェクト参照 ×   × ×  
外部浮動小数点数字項目     ×    
単精度内部浮動小数点数字項目 × × × × ×
倍精度内部浮動小数点数字項目 × × × ×
アドレスデータ項目 ×   × ×
日本語項目     ×    
日本語編集項目     ×    
外部ブール項目     ×    
内部ブール項目     ×    
ポインタ項目 ×   × ×

(凡例)
○:指定できる
空白:受け渡しできるかどうかはプラットフォームに依存するため,動作保証についてはユーザ責任とする
×:指定してはならない(指定したときの結果は保証しない)

注※
32bit版PC(x86) COBOL2002の場合は「空白」になります。

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

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

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

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

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