Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

入力専用パラメーター

プロシージャーに、入力専用に使われる BYADDR パラメーターが含まれている場合は、 そのパラメーターを NONASSIGNABLE として宣言する のが (ASSIGNABLE のデフォルト属性を取得させるのではなく) 最良の方法です。 プロシージャーがあとからそのパラメーターの定数を使って呼び出された場合、 コンパイラーは静的ストレージに定数を入れ、その静的領域のアドレスを渡します。

この方法は、レジスターに渡すことができないストリングや その他のパラメーターに特に役立ちます (レジスターに渡すことができる 入力専用パラメーターは、BYVALUE として宣言するのが最良です)。

例えば次の宣言では、getenv に対する 最初のパラメーターが、入力専用の CHAR VARYINGZ ストリングです。

dcl getenv     entry( char(*) varyingz nonasgn byaddr,
                      pointer byaddr )
               returns( native fixed bin(31) optional )
               options( nodescriptor );

ストリング「IBM_OPTIONS」が指定されてこの関数が呼び出されると、 コンパイラーは、コンパイラー生成一時記憶域にそのストリングを割り当て、 その領域のアドレスを渡すのではなく、ストリングのアドレスを渡すことができます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)