在前两个学习目标中我们已经看到了布尔(bool)变量的用法:

它仅可以被赋值为true或false,分别表达真值和假值。它可以被隐式转换成数值,true转换成1,而false转换成0。当然这种转换是不推荐的。

在C语言或比较老的C 代码里,还有一种布尔类型定义为BOOL(大写),在VS2010的库文件“wtypes.h”里可以看到,BOOL实质是长整型long,它也对应两个取值TRUE(大写)和FALSE(大写)。

c语言布尔型怎么用(C学习目标最简单实用的布尔类型介绍)(1)

写段代码实际使用下bool和BOOL类型:

c语言布尔型怎么用(C学习目标最简单实用的布尔类型介绍)(2)

运行一下(Ctrl F5)看看输出:

c语言布尔型怎么用(C学习目标最简单实用的布尔类型介绍)(3)

可以看出,bool和BOOL是可以直接比较的,因为编译器将两者用10替代。但编程的实质是体现人对业务需求的设计实现,在实用C 中,是不推荐这么混用的。

最实用的建议:请尽量使用bool,可以极大避免使用BOOL变量不当导致的“变量值既非TRUE又非FALSE”问题。

很不幸的是,在VS2010库代码里有大量的BOOL类型存在,比如MFC代码里基本上所有布尔类型的函数返回值,成员变量均使用BOOL。

c语言布尔型怎么用(C学习目标最简单实用的布尔类型介绍)(4)

不要失落,在C 标准库STL中,布尔类型使用的全是bool。[小鼓掌]请坚定不移地使用bool吧。

c语言布尔型怎么用(C学习目标最简单实用的布尔类型介绍)(5)

学习目标“最简单实用的布尔类型介绍”已完成[再见]

,