v60NumWithCharBehavior ビルド記述子オプションは、割り当てと比較で EGL が NUM 型を処理する方法に影響を与えます。
バージョン 7 から、EGL は、CHAR 値に対する割り当てまたは比較時に他の数値型を処理するときと同じ方法で NUM 型を方法で処理します。
v60NumWithCharBehavior ビルド記述子オプションが YES に設定されている場合は、EGL は、以前のバージョンと VisualAge® Generator で行っていた方法で NUM 型変数を処理します。動作の違いは微妙で複雑です。このオプションは、VisualAge Generator をエミュレートする必要がある場合のみ YES に設定する必要があります。詳しくは、このトピックの例を参照してください。
v60NumWithCharBehavior オプションは、spacesZero や blanksAsZero などの他のビルド記述子オプションの動作に影響を与えることがあります。
詳しくは、spacesZeroおよびblanksAsZeroを参照してください。
値
- NO
- EGL は、NUM 型をその他すべての数値型と同じように処理する必要があります。
- YES
- EGL は、NUM 型を VisualAge Generator での場合と同じように処理する必要があります。
デフォルト値
v60NumWithCharBehavior のデフォルト値は、
vagCompatibility ビルド記述子オプションに依存します。
- vagCompatibility が YES に設定されている場合は、v60NumWithCharBehavior のデフォルト値は YES です。
- vagCompatibility が NO に設定されている場合は、v60NumWithCharBehavior のデフォルト値は NO です。
オプションの手動設定
ほとんどの場合、v60NumWithCharBehavior ビルド記述子オプションを手動で設定する必要はありません。
- VisualAge Generator からマイグレーションした場合は、v60NumWithCharBehavior を手動で設定する必要はありません。これは、vagCompatibility を YES に設定すると、このオプションは自動的に YES に設定されるためです。
- VisualAge Generator からマイグレーションしなかった場合は、v60NumWithCharBehavior を手動で設定する必要はありません。これは、vagCompatibility を NO に設定すると、このオプションは自動的に NO に設定されるためです。
- vagCompatibility ワークスペース設定が YES に設定されている新規アプリケーションを作成している場合に、VisualAge Generator のデフォルトの動作を継承しないようにするには、v60NumWithCharBehavior および vagCompatibility ビルド記述子オプションを明示的に NO に設定する必要があります。
例
v60NumWithCharBehavior を YES に設定すると、以下の比較を行うことができます。
if( "2009-03-26" > 0)
...
end
0 は比較のために "0" に変換されます。
バージョン 7 の動作では、0 は数値であり、"2009-03-26" は無効な数値であるため比較は失敗します。
v60NumWithCharBehavior を YES に設定すると、EGL は、バイト移動を使用して NUM を CHAR に割り当てます。
num_var NUM = -4;
char_var CHAR;
char_var = num_var; // value of char_var is 't'
バージョン 7 の動作では、char_var の値は -4 です。