必要なデータより少ないデータの受け渡し

パラメーターがプロトタイプの場合には、コンパイラーは長さがパラメーター に適切かどうかを調べます。 呼び出し先が、パラメーターが最大長よりも短くても 構わないことを (文書またはプロトタイプによって) 示した場合には、安全に短いパラメーターを渡すことができます。

図 72 は QCMDEXC のプロトタイプを示しますが、ここで、最初のパラメーターは OPTIONS(*VARSIZE) を使って定義することができ、これは、最初のパラメーターに異なる長さのパラメーターを渡すことができることを意味します。OPTIONS *VARSIZE が文字フィールド、UCS-2 フィールド、図形フィールド、または配列にしか指定できないことに注意してください。

図 72. *VARSIZE パラメーターのシステム API QCMDEXC のプロトタイプ
      *-------------------------------------------------------------
      *  QCMDEXC のこのプロトタイプは 3 つのパラメーターを定義します。
      *  最初のパラメーターは *VARSIZE を指定して定義されるので、
      *  さまざまな長さの文字フィールドを渡すことができます。
      *-------------------------------------------------------------
     D qcmdexc         PR                  EXTPGM('QCMDEXC')
     D   cmd                       3000A   OPTIONS(*VARSIZE) CONST
     D   cmdlen                      15P 5 CONST
     D                                3A   CONST OPTIONS(*NOPASS)