当前位置 : 主页 > 编程语言 > c语言 >

c++中BOOL和bool的区别

来源:互联网 收集:自由互联 发布时间:2023-08-28
简述 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代替。

网友评论