プロトタイプ・パラメーター
プロトタイプ呼び出しインターフェースがパラメーターの受け渡しと関係している場合には、 PR または PI の指定の直後にパラメーターを定義しなければなりません。パラメーター定義仕様書では、そのタイプの定義に適用される次のキーワードを 使用することができます。
- ASCEND
- 配列は昇順です。
- DATFMT(形式)
- 日付パラメーターは (形式) と同じ形式を持ちます。
- DESCEND
- 配列は降順です。
- DIM(N)
- パラメーターは、要素が N の配列またはデータ構造です。
- LIKE(名前)
- パラメーターは、キーワードによって指定された項目と同様に定義されます。
- LIKEREC(名前 {,タイプ })
- パラメーターは、指定されているレコード様式名のフィールドと同じサブフィールドを持つデータ構造です。
- LIKEDS(データ構造名)
- パラメーターは、LIKEDS キーワードの中で識別されるサブフィールドと同じサブフィールドを持つデータ構造です。
- LIKEFILE(ファイル名)
- このパラメーターはファイル、つまり ファイル名 で指定されるファイルか、または LIKEFILE キーワードを介してファイル名 に関連付けられるファイルのいずれかとなります。
- PROCPTR
- パラメーターはプロシージャー・ポインターです。
- TIMFMT(形式)
- 時刻パラメーターは (形式) と同じ形式を持ちます。
- VARYING {(2|4) }
- 文字、図形、または UCS-2 パラメーターは可変長形式です。
これらのキーワードについては、定義仕様書のキーワードを参照してください。
パラメーター定義仕様書では、パラメーターを渡す方法を指定する次のキーワー
ドも使用することができます。
- CONST
- パラメーターは、読み取り専用参照によって渡されます。 CONST によって定義されたパラメーターは、呼び出されたプログラムまたはプロ シージャーによって変更されてはなりません。 このパラメーター受け渡し方式によって、リテラルおよび式を渡すことができます。
- NOOPT
- パラメーターは、呼び出されたプログラムまたはプロシージャーで最適化さ れません。
- OPTIONS(opt1 { : opt2 { : opt3 { : opt4 { : opt5 } } } })
ここで、opt1 ... opt5 には *NOPASS、*OMIT、*VARSIZE、*STRING、 *TRIM、または *RIGHTADJ を指定することができます。たとえば、OPTIONS(*VARSIZE : *NOPASS) のようになります。
次のパラメーター受け渡しオプションを指定します。- *NOPASS
- パラメーターを渡す必要はありません。 1 つのパラメーターに OPTIONS(*NOPASS) を指定した場合には、それに続くすべ てのパラメーターにも OPTIONS(*NOPASS) を指定しなければなりません。
- *OMIT
- この参照パラメーターについて、特殊値 *OMIT が渡されることがあります。
- *VARSIZE
- パラメーターには、定義で指示されたより少ないデータしか含まれていない
ことがあります。このキーワードが有効なのは、参照によって渡された文字パラメーター、図形パラメーター、UCS-2
パラメーターまたは配列の場合だけです。呼び出されるプログラムまたはプロシージャーには、渡されたパラメーターの長
さを判別するなんらかの手段がなければなりません。
注: 固定長フィールドの場合に、このキーワードを省略すると、パラメーターには、 定義で指示された量以上のデータが含まれることがあります。 可変長フィールドの場合、パラメーターは、定義で宣言された 最大長を持っていなければなりません。
- *STRING
- ヌル文字で終了するストリングとして文字値を渡します。 このキーワードが 有効なのは、値によってまたは読み取り専用参照によって渡された基底ポインター・パラメーターの場合だけです。
- *TRIM
- パラメーターは受け渡しの前にトリミングされます。
このオプションは、値によってまたは読み取り専用参照によって渡された、文字、UCS-2、
またはグラフィック・パラメーターの場合に有効です。
また、OPTIONS(*STRING) がコーディングされているポインター・パラメーターの場合にも有効です。
注: ポインター・パラメーターで OPTIONS(*STRING : *TRIM) が指定されている場合には、 ポインターが直接渡される場合にも値がトリミングされます。 ポインターが指しているヌル終了ストリングは、 ブランクがトリミングされ、新しいヌル終止符が末尾に追加されて、一時ファイルにコピーされ、 その一時ファイルのアドレスが渡されます。
- *RIGHTADJ
- CONST パラメーターまたは VALUE パラメーター の場合、*RIGHTADJ は、図形パラメーター、UCS-2 パラメーター、また は文字パラメーターの値が右寄せされることを示します。
ヒント: オプション *NOPASS、*OMIT、および *VARSIZE を渡すパラメーターの場合、 そのプロシージャーのプログラマーは、これらのオプションが確実に処理されるようにする必要があります。 たとえば、OPTIONS(*NOPASS) がコーディングされていて、パラメーターを渡さないようにした場合、プロシージャーは、そのパラメーターにアクセスする前にそれが渡されていることをチェックする必要があります。コンパイラーは、これについては一切チェックしません。- VALUE
- パラメーターは値によって渡されます。
上記のキーワードについては、定義仕様書のキーワードを参照してください。プロトタイプ・パラメーター の使用の詳細については、「Rational Development Studio for i ILE RPG プログラマーの手引き」の プログラムおよびプロシージャーの呼び出しに関する章を参照してください。