VC++6中的TRUE与true有什么区别?

CableFan 2003-09-15 10:42:42
true与false不是BOOL型的两个可能值吗?不是大小写等价的吗?
为什么
BOOL bTest
if (bTest == true)会有下面的警告?
warning C4805: '==' : unsafe mix of type 'int' and type 'const bool' in operation
而if (bTest == TRUE)则没有警告?
...全文
257 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyangcheng 2004-01-09
  • 打赏
  • 举报
回复
TRUE不等價于true?
zhangwendi 2003-09-15
  • 打赏
  • 举报
回复
define
lyr311 2003-09-15
  • 打赏
  • 举报
回复
关注
yiyepianzhou 2003-09-15
  • 打赏
  • 举报
回复
关注,就是有点晕:)
MadLee 2003-09-15
  • 打赏
  • 举报
回复
BOOL是用int型的,占四个字节,是标准出来前微软自己定义的。
bool是C++标准中新规定的,只有1个字节大小。

stoning 2003-09-15
  • 打赏
  • 举报
回复
true 和 false 是bool型的

TRUE和FALSE是BOOL型的

而#define bool int //也就是bool和int是一样的
BOOL是位操作的

所以就有了以上的警告
l1ul1u 2003-09-15
  • 打赏
  • 举报
回复
在vc中有这样的定义
typedef int BOOL;
#define TRUE 1

你要写bTest == true
则bTest要定义为bool类型
CableFan 2003-09-15
  • 打赏
  • 举报
回复
忘了,还有个问题。
既然BOOL是M$定义的,在没有使用TRUE=FALSE+1;的情况下,是不是该尽量使用bool类型呀?
CableFan 2003-09-15
  • 打赏
  • 举报
回复
多谢各位!我明白了。
不过,真有点Faint(晕)。想不到又多了个BOOL与bool!
Wolf0403 2003-09-15
  • 打赏
  • 举报
回复
#define BOOL int
#define TRUE 1
所以,sizeof(BOOL) 是 4
而 sizeof(bool) 是 1。
bool 是 C++ 原生数据类型中最小的一个。
因为 C/C++ 可以在用 0 表示假,非 0 整数表示真,而且
!0 = 1
因此在 if 和 while 后面可以用 bool 也可以用 int
推荐用 bool
dddd8888 2003-09-15
  • 打赏
  • 举报
回复
在MFC中没有区别
xwy55555 2003-09-15
  • 打赏
  • 举报
回复
其实是一个类型代名(typedef)的问题,其次要注意的是C/C++是区分大小写的

64,637

社区成员

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

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