谁能给我说说bool、BOOL、boolean、BOOLEAN的区别啊。

robig 2009-09-18 09:53:57
非常感谢!
...全文
1060 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingzhongrong 2009-09-20
  • 打赏
  • 举报
回复
bool的true是非0,具体值并没有被定义,因此,两个之间的隐式转换不够安全的,应该避免这样使用。
xylicon 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 robig 的回复:]
我是楼主,还想请问一下我用VC++时,比如选择一个MFC文档,系统帮我自动生产的代码中,都是用的BOOL类型,而我自己写代码都是习惯用bool型。
这两个严格来说能比较相等或隐式转换吗?
[/Quote]

能够隐式转换,但一般来说,最好就是统一一下比较好。毕竟bool只占一个字节,而BOOL是4个字节的。而且BOOL 的TRUE 定义为1 而bool 的 true 定义为非0.还是有区别的。
wltg2001 2009-09-19
  • 打赏
  • 举报
回复
这两个严格来说能比较相等或隐式转换吗?
============
应该是不能吧,毕竟BOOL和bool不是同一个类型,BOOL其实不过是Win32下的一个宏而已,它实际上是int型的
robig 2009-09-19
  • 打赏
  • 举报
回复
我是楼主,还想请问一下我用VC++时,比如选择一个MFC文档,系统帮我自动生产的代码中,都是用的BOOL类型,而我自己写代码都是习惯用bool型。
这两个严格来说能比较相等或隐式转换吗?
风消云散Fly 2009-09-19
  • 打赏
  • 举报
回复
学习了
xwsn007 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuximail 的回复:]
bool是c中的关键字 取值为true和false
BOOL是布尔类型 ,取值为 TRUE 和FALSE  它在头文件中的定义为  typedef int BOOL ;
BOOLEAN 在头文件中定义为 typedef unsigned char BOOLEAN ;也就是 无符号字符 类型 ;
boolean是JAVA中的类型  使用方法同bool 相同
[/Quote]

同意,正解
LL19850712 2009-09-18
  • 打赏
  • 举报
回复
非常感谢!
xylicon 2009-09-18
  • 打赏
  • 举报
回复
按照需要吧。如果是只用在c++语言的用bool就够了。

如果是需要跨语言的,那么可以用BOOL。

其他的boolean和BOOLEAN也是按照各个平台不一样,为了兼容统一格式,需要定义一下使用。
MoXiaoRab 2009-09-18
  • 打赏
  • 举报
回复
LS的都说掉了啊....

其实用起来你只要掌握一个就可以了
jingzhongrong 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuximail 的回复:]
bool是c中的关键字 取值为true和false
BOOL是布尔类型 ,取值为 TRUE 和FALSE  它在头文件中的定义为  typedef int BOOL ;
BOOLEAN 在头文件中定义为 typedef unsigned char BOOLEAN ;也就是 无符号字符 类型 ;
boolean是JAVA中的类型  使用方法同bool 相同
[/Quote]

需要注意的是,bool只在C++中有,标准C中并没有bool,在C99中有_Bool布尔类型。
typedef int BOOL;
typedef BYTE BOOLEAN;typedef unsigned char BYTE;
boolean在一些如COM中有相应的定义(VT_BOOL)。
WaistCoat16 2009-09-18
  • 打赏
  • 举报
回复
在C++中bool占一个字节,BOOL占四个字节

可以通过sizeof来测试
oyljerry 2009-09-18
  • 打赏
  • 举报
回复
大小不一样,一个char,一个int,但是都是用在0,1这种情形.只不过一般最好类型统一
幽雾 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuximail 的回复:]
bool是c中的关键字 取值为true和false
BOOL是布尔类型 ,取值为 TRUE 和FALSE  它在头文件中的定义为  typedef int BOOL ;
BOOLEAN 在头文件中定义为 typedef unsigned char BOOLEAN ;也就是 无符号字符 类型 ;
boolean是JAVA中的类型  使用方法同bool 相同
[/Quote]

很详细~~~
yuhudie203 2009-09-18
  • 打赏
  • 举报
回复
都差不多 没有大的区别 名字不同罢了
xuximail 2009-09-18
  • 打赏
  • 举报
回复
bool是c中的关键字 取值为true和false
BOOL是布尔类型 ,取值为 TRUE 和FALSE 它在头文件中的定义为 typedef int BOOL ;
BOOLEAN 在头文件中定义为 typedef unsigned char BOOLEAN ;也就是 无符号字符 类型 ;
boolean是JAVA中的类型 使用方法同bool 相同

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧