简述 c++中BOOL和bool的区别 内容 类型不同 bool为布尔型,bool是标准C++基本数据类型,单独占一个字节,取值false和true。 bool flag1=-100;//将被转换为true,非零正负值都转换为true。 bool flag
简述
c++中BOOL和bool的区别
内容
类型不同
- bool为布尔型,bool是标准C++基本数据类型,单独占一个字节,取值false和true。
bool flag1=-100;//将被转换为true,非零正负值都转换为true。
bool flag2 = 0; //将被转换为false
int val1= true;//将被转换为1
int val2=false;//将被转换为0
任何非零值转换为true,零转换为false:
C语言中没有bool类型。
- BOOL为int型,BOOL是微软在VC++中定义的“typedef int BOOL”。
BOOL值可能即不等于FALSE,也不等于TRUE。例如:BOOL val = 2;
所以BOOL类型判断真假,只与FALSE比较。
与bool不同,它是一个三值逻辑。TRUE/FALSE/ERROR,
返回值为1为TRUE,0为FALSE,ERROR(ERROR具体值要看宏定义,通常为-1)。
- 使用建议:
如果是写标准的C++,那么就全用bool;
如果是写vc++,就尽量使用BOOL,避免转换产生的性能警告。
gbf:写vc++也尽量使用bool,使用BOOL做真假判断容易出错。如果要用BOOL做返回值,则使用int或BYTE代替。