delphi byte类型算术运算


本文整理自网络,侵删。

 

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 xe5 android 程序退出功能

Delphi 2009 泛型容器单元(generics.collections)[2]: tqueue<t>

Delphi d10.x安卓app开发中简单使用原生toast

Delphi ioutils 单元(6): tpath(结构体)路径的提取和处理

Delphi usbkey访问、Delphi、js

Delphi获取各种编码的识别符

win32全局钩子在Delphi下实现的关键技术

Delphi 设置开机自动启动函数

Delphi xe android platform uses-permission[2] androidmanifest.xml 配置

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...