C语言中BOOL和C++的bool有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计355个文字,预计阅读时间需要2分钟。
简单改写如下:
C++中BOOL与bool的区别、内容、类型不同,bool为布尔型,是标准C++基本数据类型,占一个字节,取值false和true。例如:bool flag1=-100; // 将被转换为true,非零正负值都转为true。
简述
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代替。
本文共计355个文字,预计阅读时间需要2分钟。
简单改写如下:
C++中BOOL与bool的区别、内容、类型不同,bool为布尔型,是标准C++基本数据类型,占一个字节,取值false和true。例如:bool flag1=-100; // 将被转换为true,非零正负值都转为true。
简述
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代替。

