呼び出しと同じモジュールにプログラムまたはプロシージャーが定義されていない場合、 呼び出しを行うプログラムまたはプロシージャーの定義仕様書にプロトタイプが含まれていなければなりません。 これはプログラムやプロシージャーを正しく呼び出し、呼び出し元が正しいパラ メーターを確実に渡すように、コンパイラーによって使用されます。
呼び出しと同じモジュールにプロシージャーが定義されている場合には、 プロトタイプを明示的に定義する必要はありません。 プロトタイプは、プロシージャーのプロシージャー・インターフェースで指定された情報を使用して、 コンパイラーが暗黙的に定義することができます。
プログラムまたはプロシージャーがプロトタイプの場合には、そのプログラム またはプロシージャーに使用するデータ項目の名前を知っている必要はなく、 パラメーターの数とタイプだけ知っていれば済みます。
図 1 に、プロトタイプ ProcName を使用して、3 つのパラ メーターを渡す例を示します。 プロトタイプ ProcName は、プログラムまたはプロシージャーを参照すること ができます。 呼び出しを行う時にこのことを認識しているは重要でなく、プロトタイプを定義する時にのみ重要です。
/FREE
// The following calls ProcName with the 3
// parameters CharField, 7, and Field2:
ProcName (CharField: 7: Field2);
// If you need to specify operation extenders, you must also
// specify the CALLP operation code:
CALLP(e) ProcName (CharField: 7: Field2);
/END-FREE
式の中でプロシージャーを呼び出す場合には、指定された戻り値のデータ・ タイプに合った方法でプロシージャー名を使用してください。例えば、プロシージャーが数値を戻すように定義された場合には、式の中での プロシージャーの呼び出しは、数値の必要な個所でなければなりません。
プログラムおよびプロシージャーの呼び出しおよびパラメーターの受け渡しの詳細 については、「Rational Development Studio for i ILE RPG プログラマーの手引き」の該当する章を参照して ください。プロトタイプおよびパラメーターの定義の詳細については、プロトタイプおよびパラメーターを参照してください。