delphi编程里的bool跟boolean类型有什么区别
来源:互联网 发布:展板排版用什么软件 编辑:程序博客网 时间:2024/06/10 11:02
bool是LongBool类型。
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')
- delphi编程里的bool跟boolean类型有什么区别
- delphi编程里的bool跟boolean类型有什么区别
- delphi编程里的bool跟boolean类型有什么区别
- delphi编程里bool跟boolean类型的区别
- delphi编程里bool跟boolean类型的区别
- delphi编程里bool跟boolean类型的区别
- C#中bool与Boolean有什么区别
- C#中bool与Boolean有什么区别
- C#中bool与Boolean有什么区别
- BOOL/bool/Boolean的区别
- BOOL和Boolean的区别
- C#中bool与Boolean有什么区别?string和String区别?
- iOS中boolean、Boolean、BOOL、bool的区别
- [iOS]iOS中boolean、Boolean、BOOL、bool的区别
- BOOL和bool有什么区别
- ios编程——ios中Boolean、BOOL、bool的区别
- ios bool跟BOOL的区别
- Delphi里面hwnd跟Thandle有什么区别?
- T-SQL查询优化乱弹
- 种瓜得豆(3)
- 小型软件项目开发流程探讨
- C#3.0核心技术-第19章线程-全新翻译注释-19.12(2)
- 批量删除数据库中有相同前缀的表。
- delphi编程里的bool跟boolean类型有什么区别
- C#3.0核心技术-第19章线程-全新翻译注释-19.13(1)
- 做个注重贡献的高效能技术人员
- C#3.0核心技术-第19章线程-全新翻译注释-19.13(2)
- C#3.0核心技术-第19章线程-全新翻译注释-19.13(3)
- sphinx
- 试问自己
- C#3.0核心技术-第19章线程-全新翻译注释-19.14(1)
- [MFC][基本函数]StringCchPrintf()使用相关