分步浏览模式
ZOL软件经验 > 编程开发 > 其他编程开发 > 简单说说BOOL和bool的区别

简单说说BOOL和bool的区别

虚伪姐.//

BOOL和bool的区别有三,下面我就来详细说说.

一、
1、类型不同
   BOOL为int型
   bool为布尔型
2、长度不同
   bool只有一个字节
   BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
   bool取值false和true,是0和1的区别
   BOOL取值FALSE和TRUE,是0和非0的区别

二:
   bool是标准C++数据类型,可取值true和false。单独占一个字节,
   如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。
   BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑,
   TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。
   Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage().

三:
   大BOOL和小bool之间的区别:
1、类型不同
   BOOL为int型
   bool为布尔型
2、长度不同
   bool只有一个字节
   BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
   bool取值false和true,是0和1的区别
   BOOL取值FALSE和TRUE,是0和非0的区别

4、例子
   bool x=3;  //告警
   bool x=1;  //正确
   BOOL x=3;  //正确
   BOOL x=3.3;  //告警

注:windows为了兼容问题定义的基础变量。
   typedef unsigned long        DWORD;
   typedef int                  BOOL;
   typedef unsigned char        BYTE;
   typedef unsigned short      WORD;
   typedef float                FLOAT;
   typedef FLOAT                *PFLOAT;
   typedef BOOL near            *PBOOL;
   typedef BOOL far            *LPBOOL;
   typedef BYTE near            *PBYTE;
   typedef BYTE far            *LPBYTE;
   typedef int near            *PINT;
   typedef int far              *LPINT;

不喜欢(0) 点个赞(0)