CALLP 命令の使用
ユーザーは CALLP (プロトタイプ・プロシージャーの呼び出し) 命令を使って、任意の言語で書かれたプロトタイプ・プログラムまたはプロシージャーを呼び出すことができます。CALLP
命令は次の拡張因子 2 構文を使用します。
C CALLP NAME{ (PARM1 {:PARM2 ...}) }
自由形式演算では、命令拡張がない場合には CALLP
を省略することができます。自由形式命令は次の形式のいずれかを使用することができます。
/free
callp name { (parm1 { :parm2 ...} ) };
name( {parm1 {:parm2 ... }} );
/end-free
プロトタイプ・プログラムまたはプロシージャーを呼び出すためには、次の概略ステップに従ってください。
- 呼び出されるプログラムまたはプロシージャーのプロトタイプを定義仕様書に 組み込んでください。このステップは、プロシージャーが呼び出しと同じモジュールに存在し、かつプロシージャーを呼び出すモジュールがほかにない場合はオプションです。
- 拡張演算項目 2 フィールドに、プログラムまたはプロシージャーの プロトタイプ名を入力し、パラメーターがあれば括弧に入れて、これに続けます。 パラメーターはコロン (:) で区切ります。 演算項目 1 はブランクでなければなりません。
次の例は、プロシージャー Switch の呼び出しを示します。このプロシージャーは、渡される
標識 (この場合には *IN10) の状態を変更します。
C CALLP Switch(*in10)
プログラム呼び出しでは、最大 255 パラメーターを使用することができ、 プロシージャー呼び出しでは、最大 399 パラメーターを使用することができます。
モジュール内のどこからでも CALLP を使用することができます。 プロトタイプにキーワード EXTPGM が指定されている場合には、呼び出しは動的外部 呼び出しになります。そうでない場合には、これはバインド・プロシージャー呼び出しです。
CALLP を使用して値を戻すプロシージャーを呼び出した場合には、その値 は呼び出し側には使用できないことに注意してください。 値が必要な場合は、式の中でプロトタイプ・プロシージャーを呼び出します。