社区
非技术区
帖子详情
呵呵,意外发现这样的代码也能正确运行。
eastliangliang
2005-03-04 11:36:22
Delphi还真贴心啊,哈哈。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i := 4;
for i := 0 to i - 1 do
showmessage(inttostr(i));
end;
...全文
381
37
打赏
收藏
呵呵,意外发现这样的代码也能正确运行。
Delphi还真贴心啊,哈哈。 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin i := 4; for i := 0 to i - 1 do showmessage(inttostr(i)); end;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lw549
2005-03-07
打赏
举报
回复
回来晚了,循环中不用i,可以单步跟踪一下,发现i是从大到小执行的,和for的写法没有关系,原理上面已经说了。
>>for循环是事先确定循环次数的,你可以在调试的时候打开CPU看汇编,我说过,Delphi先把循环次数算出来放在寄存器ESI中,以后每次减1,不会再重新计算循环次数啦。
Sunniness
2005-03-05
打赏
举报
回复
呵呵,晕倒
caiso
2005-03-05
打赏
举报
回复
顶一下
eastliangliang
2005-03-05
打赏
举报
回复
for循环是事先确定循环次数的,你可以在调试的时候打开CPU看汇编,我说过,Delphi先把循环次数算出来放在寄存器ESI中,以后每次减1,不会再重新计算循环次数啦。
C语言是每次都计算循环条件的,不过它的for循环功能强大,这样做也是为了能实现其它循环的功能。
谁把C语言的for循环的反汇编代码贴出来,我机器上只有老式TC,还不太会使^_^
merkey2002
2005-03-05
打赏
举报
回复
Delphi还真贴心啊,哈哈。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i := 4;
for i := 0 to i - 1 do //这里的i-1 运算先于i:=0,而且for 循环事先确定循环次数,
//不像 while <条件> do 那样每次循环前要进行重新判断.因此这里i-1只执行了一次.
showmessage(inttostr(i));
end;
我分析的对不?
Breakc0de
2005-03-05
打赏
举报
回复
呵,也是啊。
才子鸣
2005-03-05
打赏
举报
回复
up
lushiyu0
2005-03-05
打赏
举报
回复
回复人: eastliangliang(青苹果) ( ) 信誉:137 2005-03-04 14:27:00 得分: 0
呵呵,C语言里可不是这样的。
i=4;
for(i=0;i<i-1;i++)//--------------老大,这行和上一行i=4 之间是不是有什么冲突?当染不能执行了!
printf("%d",i);
不执行循环的。
那孩子他爹,不用i有什么有意思的事啊?
for i := 0 to i - 1 do
showmessage('hello world');
打四个hello world,没什么啊。
这不能是bug,只是优化。
cangwu_lee
2005-03-05
打赏
举报
回复
语言的特点
eastliangliang
2005-03-05
打赏
举报
回复
呵呵,楼上想的太多啦,这点小事,不用想那么多大道理哈^_^
firstshine
2005-03-05
打赏
举报
回复
所以,谁都没有资格教训新手:我已经精通XXX......
写程序,就得学到老
lw549
2005-03-04
打赏
举报
回复
呵呵,如果不是ShowMessage用到了i,还有更有意思的事呢:)
试试看
hthunter
2005-03-04
打赏
举报
回复
我只要分……
ly_liuyang
2005-03-04
打赏
举报
回复
本来就是可以的
http://lysoft.7u7.net
DieGhost
2005-03-04
打赏
举报
回复
想想也是,自己原来都是多此一举了
lym_1978
2005-03-04
打赏
举报
回复
呵呵
gxgyj
2005-03-04
打赏
举报
回复
^_^
DieGhost
2005-03-04
打赏
举报
回复
昏倒
eastliangliang
2005-03-04
打赏
举报
回复
Delphi在循环开始把i+1算出来放在ESI中,以后就不用变量i了。我以前都是用两个变量完成这个循环功能,现在看真是多此一举啊。
XXSingle
2005-03-04
打赏
举报
回复
呵呵,平时都没注意喔
加载更多回复(17)
超强php程序的反编译工具
Windows7及vista系统可用,但需要去掉UAC,或者用管理员权限
运行
主程序。 如无
意外
,黑刀Dezender 5.0 三套解密内核版 将会是最终版本,除非新的解密内核出现,否则今后也将不再更新,也请勿再加本人QQ咨询任何关于Zend解密的问题!感谢各位黑刀爱好者关注,敬请期待本人其他作品。谢谢! 反馈问题情况汇总: 1、有很多朋友说下载了最新版还是解不出来,是因为他们把程序放在了桌面上或者Program Files目录下。大家一定要记得,不要把黑刀Dezender的主程序以及需要解密的PHP文件放置在目录名包含空格的目录内,比如桌面、Program Files目录等,除了目录名不能包含空格以外,也不能包含英文的句号,以免程序将目录当做文件来处理,造成无法解密的情况。还有一种可能性,是因为被加密了的PHP文件采用了最新版的Zend来进行的加密,所以黑刀Dezender解不出来。 2、解密出来的文件有“乱码”:这种情况通常是因为PHP程序在加密时采用了混淆函数,而所使用的函数又是Dezender无法识别的,所以在函数的部分变成了“乱码”。目前唯一的解决办法只能是更新自己的混淆函数库来尝试解密,别无他法。 3、网友“李向阳”问:“我解开的文件能读,但是有很多很基本的语法问题。不知道是怎么回事!” 对于这个典型问题,我只能回答说,解密出来的文件不可能百分百还原为原始未加密的文件的。在遇到需要手工去修复
代码
的情况时,就要求Dezender的使用者具备相应的PHP程序编写知识。如果不具备?自己找书找资料看。呵呵。 4、如果出现如下的错误提示:“无法判断程序输入点于动态链接库php5ts.dll上”说明dezender和原有的PHP环境冲突,可考虑卸载原有PHP环境,或安装虚拟机,在虚拟机上使用dezender。实在不行,换台电脑试试看吧。呵呵。虚拟机的下载地址:http://tmd.me/2008/read.php?5 重要声明: 黑刀Dezender本身只是个集成工具而已,主程序实际上只是用Delphi开发的GUI界面的外壳程序,核心的解密功能部分来自互联网上的收集整理,我所做的外壳编程,仅是在原有的各个解密内核版本Dezender的功能上,开发基于windows的用户界面,以便于使用者对原有类似“DOS”环境下的各种应用功能的Windows实现。 关于加密保护自己的PHP程序的问题: 类似微盾加密的、可以混淆函数和变量的加密方式,官方名字叫做“PHPlockit”,微盾的php加密专家也有类似的功能,但似乎会造成程序无法
正确
运行
。目前在我没有开发新版的解密工具之前,据我所知除我之外能手工解密“类微盾加密混淆函数及变量”的人并不多,大家可以试试。其他比较安全的加密方式比如Ioncube等也可以使用,只是国内支持该加密方式的虚拟主机不多,如果是独立服务器,可以考虑采用。 而Zend的混淆函数也是至今无法完全突破的问题,大家在开发自己的PHP程序时,可以采用较长的自定义函数名和变量名,这样Dezender就无法
正确
的识别出明文来了,就算解密掉程序本身,因为函数和变量都已经被混淆,自然也很难让程序
正确
运行
了。
IIS修复工具/iis修复
在安装IIS后容易出现各种各样的错误 该软件能够修复安装后的错误 亲测,好使。呵呵
JWD_Exercise2
JWD_Exercise2
dics-backend:为dics网站制作后端服务器
DICS后端 用户部分 创建用户 登录用户 查看用户 上载分数 查看分数
BT源
代码
分析
概述:相对于 tracker 服务器来说,BT客户端要复杂的多,Bram Cohen 花了一年 full time 的时间来完成 BT,我估计其中大部分时间是用在 BT 客户端的实现和调试上了。由于 BT 客户端涉及的
代码
比较多,我不能再象分析 tracker 服务器那样,走上来就深入到细节之中去,那样的话,我写的晕晕糊糊,大家看起来也不知所云。所以第一篇文章先来谈谈客户端的功能、相关协议,以及客
非技术区
830
社区成员
53,574
社区内容
发帖
与我相关
我的任务
非技术区
Delphi 非技术区
复制链接
扫一扫
分享
社区描述
Delphi 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章