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,避免转换产生的性能警告。