ユーザーは CALLP (プロトタイプ・プロシージャーの呼び出し) 命令を使って、任意の言語で書かれた プロトタイプ・プログラムまたはプロシージャーを呼び出すことができます。CALLP 命令は次の拡張因子 2 構文を使用します。
C CALLP NAME{ (PARM1 {:PARM2 ...}) }
自由形式演算では、命令拡張がない場合には CALLP を省略することができます。自由形式命令は次の形式のいずれかを使用することができます。
/free callp name { (parm1 { :parm2 ...}) }; name({parm1 {:parm2 ... }}); /end-free
プロトタイプ・プログラムまたはプロシージャーを呼び出すには、以下の一般ステップに従います。
次の例は、プロシージャー Switch の呼び出しを示します。このプロシージャーは、渡される 標識 (この場合には *IN10) の状態を変更します。
C CALLP Switch(*in10)
プログラム呼び出しでは、最大 255 パラメーターを使用することができ、 プロシージャー呼び出しでは、最大 399 パラメーターを使用することができます。
モジュール内のどこからでも CALLP を使用することができます。 プロトタイプにキーワード EXTPGM が指定されている場合には、呼び出しは動的外部 呼び出しになります。そうでない場合には、これはバインド・プロシージャー呼び出しです。
CALLP を使用して値を戻すプロシージャーを呼び出した場合には、その値 は呼び出し側には使用できないことに注意してください。 値が必要な場合は、式の中でプロトタイプ・プロシージャーを呼び出します。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.