本文整理自网络,侵删。
byte:8位无符号数,与int型可以直接运算,但要注意byte型的最大值是255,运算可能产生越界问题。西现举例说明,建一个工程,button事件中写如下语句:
procedure TForm1.btn1Click(Sender: TObject);
var i:Byte;
begin
for i := 1 to 255 do
begin
ShowMessage('正常循环');
end;
for i := 1 to 256 do
begin
ShowMessage('没有循环');
end;
end;
编译,delphi会报错,因为256超过了byte型的最大长度。
procedure TForm1.btn1Click(Sender: TObject);
var i:Byte;
begin
for i := 1 to 255 do
begin
ShowMessage('正常循环');
end;
maxbuffer := 256;
for i := 1 to maxbuffer do
begin
ShowMessage('没有循环');
end;
end;
编译不会报错,正常运行,但是运行后并不会弹出提示‘没有循环’,就是说delphi在编译时不会去判断一个变量的值,但是运行时实际上已经地址越界了。
相关阅读 >>
Delphi 能否把.txt文件的数据导入到access数据库中
Delphi now、date、time、currentyear - 当前日期
Delphi runasadmin 运行程序并申请管理员权限
在rad studio Delphi或c++安卓应用中使用自定义java库
更多相关阅读请进入《Delphi》频道 >>