考虑:
{$R+}
i:= 1;
While i > 0 do
i:= i + 1;
ShowMessage(IntToStr(i));
如果我声明i
为 Byte、Word、Shorint 或 TinyInt,我会得到一个范围检查错误,正如预期的那样。如果我声明i
为 LongWord、Cardinal、Integer、LongInt 或 Int64,它只会通过 while 循环并显示负值或 0 值,i
当您通过上限时会显示该值。
Delphi 7 不支持 32 位和 64 位数字的范围检查吗?