请问为什么I是个非常大的数值
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
  i:=0;
  for i:=0 To 10 do
    Showmessage('1');
end;

解决方案 »

  1.   

    请问一下lijinghe1如果不让编译器优化,需要屏闭那一个优化选项。我不需要它优化,因为我需要在运行时得到正确的值,以方便我的调试。
      

  2.   

    lijinghel说到了点子上,谢谢,我等待着你的回答。我明天上午结贴。
      

  3.   

    一般都会把循环变量放到专门的寄存器 以获得比较快的存取速度 一般是放到ECX吧不要优化?? 如果你只是调试的话
    可以再定义一个变量呀J:Integer;J := 0;
    for i:=0 To 10 do
    begin 
      Inc(J); //那么这个J就是跟I一样的了 
    end;
    如果你发布的时候将优化去掉可能不太好
      

  4.   

    谢谢Beyondtkl。这样是可以调试:)不过我还是想知道那个优化选项可以改变循环变量的初值,为什么编译选项那么神奇:)