必要なデータより少ないデータの受け渡し
パラメーターがプロトタイプの場合には、コンパイラーは長さがパラメーター に適切かどうかを調べます。 呼び出された側が、最大長よりも短いパラメーターを指定できることを (文書またはそのプロトタイプによって) 指示した場合、短いパラメーターを安全に渡すことができます。
図 1 は QCMDEXC のプロトタイプを示しますが、ここで、最初のパラメーターは OPTIONS(*VARSIZE) を使って定義することができ、これは、最初のパラメーターに異なる長さのパラメーターを渡すことができることを意味します。OPTIONS *VARSIZE が文字フィールド、UCS-2 フィールド、図形フィールド、または配列にしか指定できないことに注意してください。
図 1. *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)