本文整理自网络,侵删。
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 2009 泛型容器单元(generics.collections)[2]: tqueue<t>
Delphi d10.x安卓app开发中简单使用原生toast
Delphi ioutils 单元(6): tpath(结构体)路径的提取和处理
Delphi xe android platform uses-permission[2] androidmanifest.xml 配置
更多相关阅读请进入《Delphi》频道 >>