COBOL2002 ユーザーズガイド

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

18.1.1 引数の受け渡しの種類

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

引数の受け渡しの種類
引数の受け渡しには,次の3種類があります。受け渡しの種類の指定を省略した場合は,BY REFERENCEが仮定されます。
引数の受け渡しの種類 データの渡し方 仮引数の更新
BY REFERENCE 参照渡し 実引数に反映される。
BY CONTENT 内容渡し 実引数に反映されない。
BY VALUE 値渡し 実引数に反映されない。
それぞれの受け渡し方法の違いについて,次に説明します。
参照渡しBY REFERENCE指定)
呼び出し元プログラムのデータ項目を直接参照するアドレスを,呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更すると,呼び出し元プログラムのデータ項目にも反映されます。
内容渡しBY CONTENT指定)
呼び出し元プログラムのデータ項目の内容を一時領域に転記し,転記後のデータ項目を参照するアドレスを呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更しても,呼び出し元プログラムのデータ項目には影響しません。
値渡しBY VALUE指定)
呼び出し元プログラムのデータ項目の値を,呼び出し先プログラムに渡します。呼び出し先プログラムでデータ項目の値を変更しても,呼び出し元プログラムのデータ項目には影響しません。
引数を値渡しする場合は,呼び出し元プログラムのデータ項目と呼び出し先プログラムのデータ項目での型の対応に注意する必要があります。