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