Delphi中的布尔类型


本文整理自网络,侵删。

 delphi中定义了四种布尔类型:boolean,bytebool,wordbool和longbool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用boolean类型。

这四种类型的布尔值占用内存的数量如下:

boolean 1 byte

bytebool 1 byte

wordbool 2 bytes(1 word)

longbool 4 bytes(2 words)

对于bytebool,wordbool和longbool三种类型true常量的值为非零,false为零,可以用ord函数验证;

而对于boolean类型,true常量的值为1,false为零。在期望boolean值的上下文中,编译器会将bytebool,wordbool和longbool三种类型的非零值转换为true。

然而,在delphi中布尔表达式和integer/real是不兼容的。下面的表格对比了boolean与bytebool/wordbool/longbool在异同:


boolean



false < true

ord(false) = 0

ord(true) = 1

succ(false) = true

pred(true) = false

booltostr(true) = -1 //这个函数很变态

booltostr(false) = 0


bytebool, wordbool, longbool

false <> true

ord(false) = 0

ord(true) <> 0

succ(false) = true

pred(false) = true


booltostr这个函数最莫名其妙了,明明说true的值是1,而它却告诉我们true是-1。函数的原形是:

function booltostr(b: boolean; useboolstrs: boolean = false): string;

下面这个表是函数的转换规则:

b useboolstrs value of returned string

true false "-1"

true true trueboolstrs数组的第一个值(default, "true")

false false "0"

false true falseboolstrs数组的第一个值(default, "false")

相关阅读 >>

print documents from Delphi - print pdf, doc, xls, html, rtf, docx, txt

Delphi 键盘记录源代码

Delphi android调用授权管理打开通知监听服务

Delphi tstream 详细介绍

Delphi 利用sendinput模拟鼠标键盘

Delphi里实现彩色图片转为黑白图像的功能

Delphi得到cpu的序列号

Delphi 获取网卡信息(支持多网卡)

Delphi 网络时间校对

Delphi 标题栏相关操作

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



打赏

取消

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

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

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

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

评论

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