为什么我不能在for循环中使用Int64?

mus*_*sti 8 delphi

我可以for..do为整数值编写进程..但是我不能为int64值写它.例如:

var
  i:int64;
begin
  for i:=1 to 1000 do 
end; 
Run Code Online (Sandbox Code Playgroud)

编译器拒绝编译它,为什么拒绝?

Rem*_*eau 9

Delphi编译器还不支持Int64循环计数器.


Joh*_*ica 5

a中的循环计数器for loop必须是整数(或更小).
这是一种加速for循环执行的优化.

内部Delphi始终使用Int32,因为在x86上,这是可用的最快数据类型.
这在手册的深处有记载,但我现在没有方便的链接.

如果必须有64位循环计数器,请使用while..dorepeat..until循环.


pau*_*sm4 3

即使编译器确实允许在 Delphi 7 for 循环中使用“int64”(Delphi 7 ???),它也可能要到太阳热寂后的某个时间才能完成整个范围的迭代。

那么为什么不能只使用“整数”呢?

如果您必须使用 int64 值...那么只需使用“while”循环即可。

问题解决了 :)

  • Delphi 7 是 32 位的,因此您对字符串长度的断言是不正确的。 (5认同)