VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 850|回复: 8

[交流] 关于BOOL和bool

[复制链接]
47_avatar_middle
在线会员 发表于 2015-9-4 21:00:44 | 显示全部楼层 |阅读模式
网上关于二者的博文大多是错误的。上代码:
  1. CString msg;
  2.         for (int i = -3; i < 4; i++)
  3.         {
  4.                 if (i)
  5.                 {
  6.                         msg.Format("%d = true", i);
  7.                         AfxMessageBox(msg);
  8.                 }
  9.                 if (!i)
  10.                 {
  11.                         msg.Format("%d = false", i);
  12.                         AfxMessageBox(msg);
  13.                 }
  14.                 if (i == TRUE)
  15.                 {
  16.                         msg.Format("%d = TRUE", i);
  17.                         AfxMessageBox(msg);
  18.                 }
  19.                 if (i == FALSE)
  20.                 {
  21.                         msg.Format("%d = FALSE", i);
  22.                         AfxMessageBox(msg);
  23.                 }
  24.                 if (i == ERROR)
  25.                 {
  26.                         msg.Format("%d = ERROR", i);
  27.                         AfxMessageBox(msg);
  28.                 }
  29.         }
复制代码


结论:
true 是 非0;
false 是 0;
TRUE 是 1;
FALSE 是 0;
ERROR 是 0。




上一篇:最愛的boost容器之 any
下一篇:想要VC6.0安装包及插件的,请把邮箱地址回复给我,我统一给大家发
02_avatar_middle
在线会员 发表于 2015-9-4 22:52:17 | 显示全部楼层
关于BOOL和bool
51_avatar_middle
online_admins 发表于 2015-9-5 21:01:10 | 显示全部楼层
实践是检验真理的唯一标准!关于BOOL和bool
78_avatar_middle
online_supermod 发表于 2015-9-5 21:06:09 | 显示全部楼层
bool是一个字节,BOOL是四个字节,BOOL是宏定义。true一定为1,false一定为0,TRUE被定义为1,FALSE被定义为0。
22_avatar_middle
在线会员 发表于 2015-9-7 18:42:35 | 显示全部楼层
楼上正解
47_avatar_middle
ico_lz  楼主| 发表于 2015-9-7 19:53:37 | 显示全部楼层

2也是true...
但是2不是TRUE
78_avatar_middle
online_supermod 发表于 2015-9-9 09:23:02 | 显示全部楼层
忧郁的鱼 发表于 2015-9-7 19:53
2也是true...
但是2不是TRUE

对于判断语句,只要条件不为0,都为真。
47_avatar_middle
ico_lz  楼主| 发表于 2015-9-9 10:06:12 | 显示全部楼层
jpacg 发表于 2015-9-9 09:23
对于判断语句,只要条件不为0,都为真。

对呀 所以我说 true是非0 非0为true
但是TRUE是1
22_avatar_middle
在线会员 发表于 2015-9-11 12:08:13 | 显示全部楼层
忧郁的鱼 发表于 2015-9-7 19:53
2也是true...
但是2不是TRUE

对于true:非0为真,而BOOL属于int型,2当然不会是TRUE了,请看以下两个宏:
typedef int                 BOOL;
#define TRUE    1
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-21 17:46

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表