パラメーターの受け渡しについての考慮事項
- コンパイル時のパラメーターの検査
プロトタイプ呼び出しの呼び出しインターフェースはコンパイル時に検査されます。 この検査によって次のことが確認されます。
- データ・タイプが正しく使用されていること
- 正しいファイルがファイル・パラメーターに渡されていること
- すべての必要なパラメーターが渡されていること
- *OMIT が使用可能な場所でだけ渡されていること
- パラメーターの受け渡し方法
各 HLL は 1 つ以上のパラメーターの受け渡し方法を提供します。 これらにはパラメーター値へのポインターの受け渡し、 値のコピーの受け渡し、または値自身の受け渡しが含まれます。
- 操作記述子の受け渡し
時には、ユーザーに渡されるデータの正確な形式が分らないことが あります。 この場合には、渡されたパラメーターの形式に関する詳細説明を提供するた めに操作記述子を渡すよう要求することができます。
- パラメーターの数
一般に、呼び出されるプログラムまたはプロシージャーに必要な 数のパラメーターを渡す必要があります。 必要数より少ないパラメーターが渡され、呼び出された側がデータのない パラメーターを参照した場合には、呼び出された側でエラーとなります。
- 少ないデータの受け渡し
パラメーターを渡したとき渡したデータが小さすぎる場合には、アプリケーションは正し く機能しません。 パラメーターを変更する場合には、記憶域を重ね書きすることがあります。 パラメーターを使用する場合には、パラメーターを誤って解釈することがあります。コンパイラーは、パラメーターのプロトタイピングによって、パラメーターの長 さが適切かどうかを調べます。
呼び出された側がパラメーターが最大長よりも短いことを指示した場合には (文書 またはプロトタイプによって)、安全に短いパラメーターを渡すことができます (しかし、呼び出された プロシージャーが、必要なものより少ないデータを処理するように作成されていなければ ならないことに注意してください)。
- 評価の順序
プロトタイプの呼び出しのパラメーターの評価順序は保証されて いません。 パラメーターがパラメーター・リストで複数回使用されている場合には、 このことは重要であり、副次的な影響を与えることがあります。
- 言語間呼び出しについての考慮事項
HLL によって、プログラムとプロシージャー間のデータの受け渡し方法が異なる だけでなく、サポートしているデータ表示方法も異なっています。 一般に、呼び出し側と呼び出された側のプログラムまたはプロシージャー に共通のデータ・タイプで、両方でサポートされるデータだけを 使用して渡す必要があります。
RPG ファイル・パラメーターは、その他の HLL のファイル・ パラメーターに関連していません。RPG ファイル・パラメーターは他の RPG プログラムまたはプロシージャーに のみ渡すことができます。
表 1 は上記の考慮事項と、プロトタイプまたは非プロトタイプの 2 つのパラメーターを関連付けています。
| パラメーター・オプション | プロトタイプ | 非 |
参照ページ |
|---|---|---|---|
| コンパイル時のパラメーターの検査 | はい | プロトタイプ・パラメーターの受け渡し | |
| 参照による受け渡し | はい | はい | 参照による受け渡し |
| 値による受け渡し | はい (b) | 値による受け渡し | |
| 読み取り専用参照による受け渡し | はい | 読み取り専用参照による受け渡し | |
| 操作記述子の受け渡し | はい (b) | はい (b) | 操作記述子の使用 |
| *OMIT の受け渡し | はい | はい (b) | パラメーターの省略 |
| パラメーター省略の制御 | はい | はい | パラメーターの省略 |
| 渡されたパラメーターの数の取得 | はい | はい | 渡されるパラメーターの数の検査 |
| 正しくないパラメーター長の使用不能 | はい | 必要なデータより少ないデータの受け渡し | |
| ファイル・パラメーターを渡す | はい | ファイル・パラメーターの受け渡し | |
注: (b) – バインドされたプロシージャーにのみ適用されます。
|
|||