プロトタイプ

プロトタイプは、呼び出しインターフェースの定義です。これには、次の情報が含まれます。

プロトタイプは、呼び出しを行うプログラムまたはプロシージャーの定義仕様書 に組み込まれていなければなりません。 このプロトタイプは、プログラムまたはプロシージャーを正しく呼び出し、呼び出 し元が確実に正しいパラメーターを渡せるように、コンパイラーによって使用さ れます。

プロトタイプ定義に適用される規則は、次のとおりです。

これらのキーワードについては、定義仕様書のキーワードを参照してください。図 64 は、数値入力パラメーターを受け入れて、文字ストリン グを戻すサブプロシージャー CVTCHR のプロトタイプを示しています。 戻り値と関連した名前はないことに注意してください。この理由から、プログラムのデバッグ時にその内容を表示することはできません。

図 64. CVTCHR のプロトタイプ
      * The returned value is the character representation of
      * the input parameter NUM, left-justified and padded on
      * the right with blanks.
     D CVTCHR          PR            31A
     D   NUM                         31P 0   VALUE
      * The following expression shows a call to CVTCHR.  If
      * variable rrn has the value 431, then after this EVAL,
      * variable msg would have the value
      *    'Record 431 was not found.'
     C                   EVAL      msg = 'Record '
     C                                 + %TRIMR(CVTCHR(RRN))
     C                                 + ' was not found '

エクスポートされるサブプロシージャー用またはメイン・プロシージャー用のプロトタイプを書いている場合は、プロトタイプを /COPY ファイルに入れ、そのプロトタイプを、呼び出し側とそのプロシージャーを定義するモジュールの両方のソース・ファイルにコピーします。 このコーディング技法では、呼び出し元もプロシージャー自身もすべてが同一のプロトタイプを使用するため、両者にとってパラメーター・チェックの利点を最大に生かすことができます。