关于宏定义的BOOL和bool类型的问题

yun1st 2009-04-02 09:19:35
我看别人的c++代码里用宏定义的int型的BOOL,定义1为TRUE,定义0为FALSE。

c++不是有bool类型变量吗,为什么要用宏定义呢?
...全文
1010 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihaidechaoren 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 2 楼 xxweilw 的回复:
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false

为什么说bool不能用在vector里面???
[/Quote]
bool可以用在vector里面,而且比起char可以节省7/8的内存。可能以前vector的实作不让bool用在vector里面吧。

[Quote=引用 9 楼 的回复:]

bool里的true要宏定义吗?
[/Quote]
不需要,是c++定义好了的关键字。
ctzhenghua 2012-03-16
  • 打赏
  • 举报
回复
bool里的true要宏定义吗?
十八道胡同 2009-04-02
  • 打赏
  • 举报
回复
学习
qzl123666 2009-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xxweilw 的回复:]
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false
[/Quote]
为什么说bool不能用在vector里面???
wjb_yd 2009-04-02
  • 打赏
  • 举报
回复
c语言里没有bool类型
bool f(); 这样的函数无法通过c语言的编译器
所以要 #define bool int

而如果以后你写c++的代码时也要用到这个f函数的话
只要再前面加上
#undef bool
就可以了

反过来,c++的函数,移植到c语言上也一样,加上个#define就可以了
liliangbao 2009-04-02
  • 打赏
  • 举报
回复
兼容C!
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别 二:bool是标准C++数据类型,可取值true和false。单独占一个字节,
如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。

BOOL是微软定义的typedef int BOOL。与bool不同
mengde007 2009-04-02
  • 打赏
  • 举报
回复
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别
mengde007 2009-04-02
  • 打赏
  • 举报
回复
BOOL型一般用在windows程序设计时
xxweilw 2009-04-02
  • 打赏
  • 举报
回复
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false
wuyu637 2009-04-02
  • 打赏
  • 举报
回复
C 语言没有提供标准的布尔类型, 部分因为选一个这样的类型涉及最好由 程序员决定的空间/时间折衷。 (使用 int 可能更快, 而使用 char 可能更节省数据空间。然而, 如果需要和 int 反复转换, 那么小类型也可能生成 更大或更慢的代码。)

======================================
我猜是为了兼容c语言。

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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