这个是delphi的bug嘛??我晕了。

daviddelphilee 2006-12-23 02:59:02
for iLen := 0 to sNetDrivers.Count - 1 do
begin
for idrv := 0 downto 24 do
这样一个两层循环:
设置断点调试:
第一次执行的时候idrv的值居然是24,

然后改成这样:
for iLen := 0 to sNetDrivers.Count - 1 do
begin
for idrv := 24 downto 0 do
第一次后, idrv的值居然是-25

晕了。.
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
daviddelphilee 2007-03-13
  • 打赏
  • 举报
回复
Bearzmc 2006-12-23
  • 打赏
  • 举报
回复
你能发现delphi的bug,佩服,哈哈,
madyak 2006-12-23
  • 打赏
  • 举报
回复
正常不是Bug是编译时优化开关打开的原因。
因为你没有用到循环变量的值,所以它是几对你来说不重要。
如果引用了循环变量,它的值会是正确的。
还有如果把编译优化开关关闭,它的值总是会正确的。
daviddelphilee 2006-12-23
  • 打赏
  • 举报
回复
写错了点,应该是这样的:

for iLen := 0 to sNetDrivers.Count - 1 do
begin
for idrv := 0 to 24 do
这样一个两层循环:
设置断点调试:
第一次执行的时候idrv的值居然是24,

然后改成这样:
for iLen := 0 to sNetDrivers.Count - 1 do
begin
for idrv := 24 downto 0 do
第一次后, idrv的值居然是-25

晕了。.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧