我的一片天

我的一片天
posts - 27, comments - 12, trackbacks - 0, articles - 16
   :: 首页 :: 新随笔 :: 联系 ::  :: 管理

DELPHI中FOR循环在编译的优化处理时产生的问题

Posted on 2008-08-18 16:17 xyz 阅读(845) 评论(1)  编辑 收藏 引用 所属分类: Delphi


var
 i:integer;
begin
  for i:=0 to 10 do
  begin
      ary[i]:=0;
  end;
end;

貌似简单的一段代码,却不简单。调试时,发现i居然是从11开始的,但是如果多声明一个j变量,变成
  for i:=0 to 10 do
  begin
      j:=i;
      ary[i]:=0;
  end;

在这里j 完全没用,但是调试的时候却能使i正确地等于0.开始以为是程序哪里的内存操作过界造成的,但是即使是一个很简单的程序也是这样,折腾了半天不得其解。


通过搜索,才知道这个DELPHI的优化处理造成的,只要在 Project->options->compile中把Optimization项的沟去掉就一切都正常了。

Feedback

# re: DELPHI中FOR循环在编译的优化处理时产生的问题[未登录]  回复  更多评论   

2009-06-15 00:05 by joe
谢谢!!
只有注册用户登录后才能发表评论。