突然发现Delphi的for循环最后会把i还计算一遍!
procedure TForm1.Button1Click(Sender: TObject);
var
i,k,n: Integer;
begin
n:=0;
k:=StrToInt(Edit2.Text);
for i:=StrToInt(Edit1.Text) to k do
begin
n:=n+1;
//if i=k then break;
end;
Edit3.Text:='i='+IntToStr(i)+' No: '+IntToStr(n); //这里的i已经是比Edit2中的数字大1了,如果不加Break的话。
end;
赶快回头检查下之前的Code!!!!!!
哈哈
还好我不会在
for do begin
end;
后面再引用 I 的值。
你才知道
只有这样才能知道i是否已经超过了最大边界
比如
for i := 2 to 5 do
begin
end;
for这一句在汇编中是这样表示的 cmp ebx,$06,而不是$05
原因LS解释了
一般不要循环完了直接引用循环变量,DELPHI编译时已经给过警告了...
恩,知道了。
要是delphi给你优化成downto的话,还不知道是啥样呢
应该与编译有关
00457DA0 686A7E4500 push $00457e6a
00457DA5 64FF30 push dword ptr fs:[eax]
00457DA8 648920 mov fs:[eax],esp
Unit1.pas.33: n:=0;
00457DAB 33C0 xor eax,eax
00457DAD 8945F0 mov [ebp-$10],eax
Unit1.pas.34: k:=StrToInt(Edit2.Text);
00457DB0 8D55E4
相关问答:
VC 控制台程序:
#include <iostream>
using namespace std;
int main()
{
const int def_buffer = 1024 * 4;
DWORD t;
BYTE b[def_buffer];
memset(b, 0, sizeof(b));
PBYTE p;
t = GetTickC ......
要求能实现二人在同台电脑上对战的 不用太花哨 最好还加上人机对战的 急需 谁帮下忙啊呀!!!!!!!!
up
baidu,google
up
http://www.codepub.com/software/view-software-4061.html
网站上有
......
错误类型:出错误尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
C#源码
[DllImport("Base64.dll")]
public static extern string Base64ToStr(string Base64);
protected void Page_Load(o ......
我怎么查了那么多说是能破解的.结果都不行.你们有没有呀.给我个详细的解决方案.下载哪个版本.破解文件,还有注册码
不清楚
下载官方光盘镜像,用delphidistiller1.85破解
到www.2ccc.com上去找delphidis ......