COBOL2002 使用の手引 手引編


17.1.1 引数の受け渡しの種類

プログラム間で引数を受け渡す場合は,CALL文のUSING指定を,メソッドを呼び起こす場合は,INVOKE文のUSING指定を,それぞれ使用します。

引数の受け渡しの種類

引数の受け渡しには,次の3種類があります。受け渡しの種類の指定を省略した場合は,BY REFERENCEが仮定されます。

引数の受け渡しの種類

データの渡し方

仮引数の更新

BY REFERENCE

参照渡し

実引数に反映される。

BY CONTENT

内容渡し

実引数に反映されない。

BY VALUE

値渡し

実引数に反映されない。

それぞれの受け渡し方法の違いについて,次に説明します。

参照渡し(BY REFERENCE指定)

呼び出し元プログラムのデータ項目を直接参照するアドレスを,呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更すると,呼び出し元プログラムのデータ項目にも反映されます。

内容渡し(BY CONTENT指定)

呼び出し元プログラムのデータ項目の内容を一時領域に転記し,転記後のデータ項目を参照するアドレスを呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更しても,呼び出し元プログラムのデータ項目には影響しません。

値渡し(BY VALUE指定)

呼び出し元プログラムのデータ項目の値を,呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更しても,呼び出し元プログラムのデータ項目には影響しません。

引数を値渡しする場合は,呼び出し元プログラムのデータ項目と呼び出し先プログラムのデータ項目での型の対応に注意する必要があります。