BIFPREC オプションは、以下の組み込み関数の返す FIXED BIN 結果の精度を制御します。
BIFPREC コンパイラー・オプションの影響が最も明らかに見えるのは、上記の組み込み関数の結果の 1 つが、パラメーター・リストなしに宣言された外部関数に受け渡されるときです。例えば、次のような部分コードがあるとします。
dcl parm char(40) var; dcl funky ext entry( pointer, fixed bin(15) ); dcl beans ext entry; call beans( addr(parm), verify(parm),' ') );
関数 beans が実際にそのパラメーターを POINTER および FIXED BIN(15) として宣言すると、上記のコードがオプション BIFPREC(31) でコンパイルされたものであった場合、および z/OS のようなビッグ・エンディアン・システム上で実行されていた場合に、コンパイラーは 2 番目の引数として 4 バイトの整数を受け渡し、2 番目のパラメーターがゼロであるかのように見えます。
関数 funky は、すべてのシステム上でどちらのオプションでも機能することに注意してください。
BIFPREC オプションは、組み込み関数 DIM、HBOUND および LBOUND には影響しません。CMPAT オプションは、次の 3 つの関数から戻された FIXED BIN の結果の精度を判別します。CMPAT(V1) では、これらの配列処理関数は、FIXED BIN(15) の結果を戻し、CMPAT(V2) および CMPAT(LE) では、FIXED BIN(31) の結果を戻します。