| CALL . . . BY REFERENCE identifier |
呼び出し側プログラムの CALL ステートメントの引数の定義と呼び出されるプログラムのパラメーターの定義に、同じメモリーを共用させる。 |
サブプログラムがパラメーターに対して行う変更は、呼び出し側プログラムの引数に影響を与えます。 |
| CALL . . . BY REFERENCE
ADDRESS OF identifier |
identifier のアドレスを呼び出し先プログラムに渡します。ここで、identifier は LINKAGE
SECTION 内の項目です。
|
サブプログラムがアドレスに対して行う変更は、呼び出し側プログラム内のアドレスに影響を与えます。 |
| CALL . . . BY CONTENT ADDRESS
OF identifier |
identifier のアドレスのコピーを、呼び出し先プログラムに渡します。 |
アドレスのコピーに任意の変更を加えても identifier のアドレスには影響しませんが、アドレスのコピーを使用する identifier を変更すると identifier が変更されます。 |
| CALL . . . BY CONTENT identifier |
ID のコピーをサブプログラムに渡す。 |
サブプログラムによってパラメーターを変更しても、呼び出し側の ID には影響しません。 |
| CALL . . . BY CONTENT literal |
呼び出し先プログラムにリテラル値のコピーを渡す。 |
|
| CALL . . . BY CONTENT LENGTH
OF identifier |
データ項目の長さのコピーを渡す。
|
呼び出し側プログラムは、その LENGTH 特殊レジスターから identifier の長さを渡します。 |
次のような BY REFERENCE と BY CONTENT の組み合わせ:
CALL 'ERRPROC'
USING BY REFERENCE A
BY CONTENT LENGTH OF A. |
データ項目とその長さのコピーの両方をサブプログラムに渡す。 |
|
| CALL . . . BY
VALUE identifier |
C/C++ プログラムなど、BY VALUE パラメーター・リンケージ規約を使用するプログラムにデータを渡す。 |
ID のコピーがパラメーター・リストとして直接渡されます。 |
| CALL . . . BY
VALUE literal |
C/C++ プログラムなど、BY VALUE パラメーター・リンケージ規約を使用するプログラムにデータを渡す。 |
リテラルのコピーがパラメーター・リストとして直接渡されます。 |
| CALL . . . BY VALUE ADDRESS OF
identifier |
呼び出し先プログラムに identifier のアドレスを渡す。データに対するポインターを必要とする C/C++ プログラムにデータを渡すのに推奨される方法。 |
アドレスのコピーに任意の変更を加えても identifier のアドレスには影響しませんが、アドレスのコピーを使用する identifier を変更すると identifier が変更されます。 |
| CALL . . . RETURNING |
関数戻り値を使用して C/C++ 関数を呼び出す。 |
|