読み取り専用参照による受け渡し

パラメーターをプロトタイプ・プロシージャーまたはプログラムに渡すもう 1 つの方法は、読み取り専用の参照によって渡すことです。参照によってパラメーターを渡す必要があり、 そのパラメーター値が呼び出し中に変更されないことが分っている場合には、読み取り専用参照による受け渡しが 便利です。 例えば、多くのシステム API は、形式または長さを指定する読み取り専用の パラメーターをもっています。

読み取り専用参照によるパラメーターの受け渡しには値による受け渡しと同じ利点が あります。 特に、この方法によってリテラルおよび式を渡すことができます。しかし、パラメーターが呼び出し中に変更されないことを承知しておくことが重 要です。

パラメーターを読み取り専用参照により渡した時には、 コンパイラーはパラメーターを一時フィールドにコピーして その一時フィールドのアドレスを渡します。これを引き起こす条件の一部は、渡されたパラメーターが式 であることか、渡されたパラメーターの形式が異なっている場合です。
注: 呼び出されるプログラムまたはプロシージャーが、読み取り専用の参照方式を使用 する言語 (プロトタイプを使用する ILE RPG、または C のどちらか) の プロトタイプを使用してコンパイルされる場合には、パラメーターは変更されません。 呼び出されるプログラムまたはプロシージャーがプロトタイプを使用しない場合には、 コンパイラーはパラメーターが変更されないことを 保証できません。 この場合には、プロトタイプを定義する人がこのパラメーター受け渡し方法の指 定時に注意しなければなりません。

読み取り専用参照でパラメーターを渡すためには、プロトタイプの パラメーター定義の定義仕様書でキーワード CONST を指定してください。 図 3 は、ILE CEE API CEETSTA プロトタイプ定義 (省略引数のテスト) 例です。