惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
有赞技术团队
有赞技术团队
博客园_首页
IT之家
IT之家
爱范儿
爱范儿
量子位
小众软件
小众软件
Jina AI
Jina AI
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
The Cloudflare Blog
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
雷峰网
雷峰网
V
Visual Studio Blog
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题

博客园 - 路吾

VC 结束进程 typedef用法小结 用户中心 - 博客园 变量定义与声明的区别 读书笔记:可行性个分析和需求分析(一) 如何防止在ListBox中添加很多数据出现不停的刷新? CComboBox控件使用 vc技巧 VC6.0 如何改变对话框背景色 用户中心 - 博客园 如何迈过职业生涯中的5个坎 云计算基本原理和概念 用户中心 - 博客园 通信控件MSComm使用详解 用VC++编写勾子程序 vc的Debug和release 进程间通信方法总结 用MFC实现文件拖放到ListBox VC中CreateProcess函数用法
BOOL和bool的区别
路吾 · 2009-05-07 · via 博客园 - 路吾

 (来源网络)

1、类型不同

BOOL为int型,微软自定义类型:typedef int   BOOL;

bool为布尔型,为C++标准的数据类型

2、长度不同

bool只有一个字节

BOOL长度视实际环境来定,一般可认为是4个字节,因为它本身是int型

3、取值不同

bool取值false和true,是0和1的区别

BOOL取值FALSE和TRUE,是0和非0的区别

如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。

BOOL是微软定义的typedef int BOOL(在windef.h中)。与bool不同,它是一个三值逻辑,

TRUE/FALSE/ERROR,定义如下:(afx.h)

#define FALSE 0

#define TRUE 1

#define ERROR 0

Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage().

例如:

bool x=3;    //告警
bool x=1;    //正确
BOOL x=3;    //正确
BOOL x=3.3;  //告警

bool类型可以赋值给BOOL类型,但是BOOL类型赋值给bool类型会告警

布尔型变量bool

bool是布尔型变量,也就是逻辑型变量的定义符,类似于float,double等,只不过float定义浮点型,double定义双精度浮点型。

布尔型变量的值只有 真 (true) 和假(false)。

布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。

bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。

布尔型运算结果常用于条件语句,假设布尔变量名字为flag,它与零值比较的标准if语句如下:

if (flag) // 表示flag为真

if (!flag) // 表示flag为假

其它的用法都属于不良风格,例如:

if (flag == TRUE)

if (flag == 1 )

if (flag == FALSE)  

if (flag == 0)