コンパイラーは定数のMAXLONG
を整数としてコンパイルします。リテラル数値とは違い,定義済み定数は値だけでなく型も決まっているからです。たとえばMAXLONG+1
という数式はインタープリターモードで実数値の2147483648
を返しますが,コンパイルモードでは整数値の-1
を返します。これは仕様です。符号付き32ビット整数値の範囲をオーバーフローするような数値をコンパイルモードで扱うのであれば,整数型の定義済み定数は使用しないでください。
コンパイラーは定数のMAXLONG
を整数としてコンパイルします。リテラル数値とは違い,定義済み定数は値だけでなく型も決まっているからです。たとえばMAXLONG+1
という数式はインタープリターモードで実数値の2147483648
を返しますが,コンパイルモードでは整数値の-1
を返します。これは仕様です。符号付き32ビット整数値の範囲をオーバーフローするような数値をコンパイルモードで扱うのであれば,整数型の定義済み定数は使用しないでください。