delphi编程里的bool跟boolean类型有什么区别?

之前一直认为bool是win32里的布尔值,boolean是delphi里特有的布尔值(就是true或则false),今天碰到一个API函数,选取返回值时,这两个类型的返... 之前一直认为bool是win32里的布尔值,boolean是delphi里特有的布尔值(就是true或则false),今天碰到一个API函数,选取返回值时,这两个类型的返回值是不一样的,一个是true另一个是false,这两个有什么区别么? 展开
 我来答
匿名用户
2013-03-28
展开全部
bool是LongBool类型。 Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。这四种类型的布尔值占用内存的数量如下:Boolean 1 ByteByteBool 1 ByteWordBool 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 < TrueOrd(False) = 0Ord(True) = 1Succ(False) = TruePred(True) = FalseBoolToStr(True) = -1 //这个函数很变态BoolToStr(False) = 0 ByteBool, WordBool, LongBoolFalse <> TrueOrd(False) = 0Ord(True) <> 0Succ(False) = TruePred(False) = True BoolToStr这个函数最莫名其妙了,明明说True的值是1,而它却告诉我们True是-1。函数的原形是:function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;下面这个表是函数的转换规则:B UseBoolStrs Value of returned stringTrue False '-1'True True TrueBoolStrs数组的第一个值(default, 'TRUE')False False '0'False True FalseBoolStrs数组的第一个值(default, 'FALSE')
税票渔夫
2017-05-09
知道答主
回答量:39
采纳率:0%
帮助的人:2.7万
展开全部
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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风灬飏
2013-03-27
知道答主
回答量:23
采纳率:100%
帮助的人:13.6万
展开全部
delphi 2007 里 BOOL = LongBool 4 Bytes
boolean 1Bytes ,大概就是这区别吧,boolean 是delphi原生的,BOOL是为了兼容其它语言的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个实在些
2013-03-27 · TA获得超过552个赞
知道小有建树答主
回答量:763
采纳率:0%
帮助的人:633万
展开全部
DELPHI里只有一个boolean类型,等同于BOOL,如果返回出现问题,应该是api函数的问题!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式