VS2015--win32工程配置的一些想法之警告:“BOOL”: 将值强制为布尔值“true”或“false”(性能警告)

review了一些代码,参考c++ google style还有一定的距离。

有一条就是把警告当成错误进行处理。

今天就遇到了这样一个警告(错误):
BOOL”: 将值强制为布尔值“true”或“false”(性能警告)

定位到了原型后发现,函数的参数定义为bool类型,而函数调用时使用的实参是BOOL类型。

当时有些疏忽,没有在意二者的区别。现在就来八一八。

首先看定义:

#define bool _Bool
typedef     int                 BOOL;

恍然大悟吧,二者类型就是不同的。

取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别

看看例子:

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

个人觉得,就是要统一。
如果是写标准的C++,那么就全用bool;
如果是写vc++,就尽量使用BOOL,避免转换产生的性能警告。

你可能感兴趣的:(style,Google,bool,bool)