我可以for..do为整数值编写进程..但是我不能为int64值写它.例如:
var
i:int64;
begin
for i:=1 to 1000 do
end;
Run Code Online (Sandbox Code Playgroud)
编译器拒绝编译它,为什么拒绝?
a中的循环计数器for loop必须是整数(或更小).
这是一种加速for循环执行的优化.
内部Delphi始终使用Int32,因为在x86上,这是可用的最快数据类型.
这在手册的深处有记载,但我现在没有方便的链接.
如果必须有64位循环计数器,请使用while..do或repeat..until循环.
即使编译器确实允许在 Delphi 7 for 循环中使用“int64”(Delphi 7 ???),它也可能要到太阳热寂后的某个时间才能完成整个范围的迭代。
那么为什么不能只使用“整数”呢?
如果您必须使用 int64 值...那么只需使用“while”循环即可。
问题解决了 :)