パラメーターの受け渡しについての考慮事項

呼び出しインターフェースの設計時には、パラメーターの渡し方について多くの 決定をしなければなりません。 他方、ユーザーが呼び出し元の場合には、大部分の決定が既にユーザーのためになされています。次に呼び出しインターフェースの設計時に忘れてはならない パラメーター受け渡しの考慮事項をいくつかリストします。
  • コンパイル時のパラメーターの検査
    プロトタイプ呼び出しの呼び出しインターフェースはコンパイル時に検査されます。 この検査によって次のことが確認されます。
    • データ・タイプが正しく使用されていること
    • 正しいファイルがファイル・パラメーターに渡されていること
    • すべての必要なパラメーターが渡されていること
    • *OMIT が使用可能な場所でだけ渡されていること
  • パラメーターの受け渡し方法

    各 HLL は 1 つ以上のパラメーターの受け渡し方法を提供します。 これらにはパラメーター値へのポインターの受け渡し、 値のコピーの受け渡し、または値自身の受け渡しが含まれます。

  • 操作記述子の受け渡し

    時には、ユーザーに渡されるデータの正確な形式が分らないことが あります。 この場合には、渡されたパラメーターの形式に関する詳細説明を提供するた めに操作記述子を渡すよう要求することができます。

  • パラメーターの数

    一般に、呼び出されるプログラムまたはプロシージャーに必要な 数のパラメーターを渡す必要があります。 必要数より少ないパラメーターが渡され、呼び出された側がデータのない パラメーターを参照した場合には、呼び出された側でエラーとなります。

  • 少ないデータの受け渡し

    パラメーターを渡したとき渡したデータが小さすぎる場合には、アプリケーションは正し く機能しません。 パラメーターを変更する場合には、記憶域を重ね書きすることがあります。 パラメーターを使用する場合には、パラメーターを誤って解釈することがあります。コンパイラーは、パラメーターのプロトタイピングによって、パラメーターの長 さが適切かどうかを調べます。

    呼び出された側がパラメーターが最大長よりも短いことを指示した場合には (文書 またはプロトタイプによって)、安全に短いパラメーターを渡すことができます (しかし、呼び出された プロシージャーが、必要なものより少ないデータを処理するように作成されていなければ ならないことに注意してください)。

  • 評価の順序

    プロトタイプの呼び出しのパラメーターの評価順序は保証されて いません。 パラメーターがパラメーター・リストで複数回使用されている場合には、 このことは重要であり、副次的な影響を与えることがあります。

  • 言語間呼び出しについての考慮事項

    HLL によって、プログラムとプロシージャー間のデータの受け渡し方法が異なる だけでなく、サポートしているデータ表示方法も異なっています。 一般に、呼び出し側と呼び出された側のプログラムまたはプロシージャー に共通のデータ・タイプで、両方でサポートされるデータだけを 使用して渡す必要があります。

    RPG ファイル・パラメーターは、その他の HLL のファイル・ パラメーターに関連していません。RPG ファイル・パラメーターは他の RPG プログラムまたはプロシージャーに のみ渡すことができます。

表 1 は上記の考慮事項と、プロトタイプまたは非プロトタイプの 2 つのパラメーターを関連付けています。

表 1. パラメーター受け渡しオプション
パラメーター・オプション プロトタイプ


プロトタイプ

参照ページ
コンパイル時のパラメーターの検査 はい   プロトタイプ・パラメーターの受け渡し
参照による受け渡し はい はい 参照による受け渡し
値による受け渡し はい (b)   値による受け渡し
読み取り専用参照による受け渡し はい   読み取り専用参照による受け渡し
操作記述子の受け渡し はい (b) はい (b) 操作記述子の使用
*OMIT の受け渡し はい はい (b) パラメーターの省略
パラメーター省略の制御 はい はい パラメーターの省略
渡されたパラメーターの数の取得 はい はい 渡されるパラメーターの数の検査
正しくないパラメーター長の使用不能 はい   必要なデータより少ないデータの受け渡し
ファイル・パラメーターを渡す はい   ファイル・パラメーターの受け渡し
注: (b) – バインドされたプロシージャーにのみ適用されます。