bool和BOOL的区别

来源:互联网 发布:数据有效性 关键字 编辑:程序博客网 时间:2024/06/07 02:08

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()。

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; //   maximum   heap   size

 

 

俺要说两句:

1. 大写的BOOL是MFC的,要包含头文件的。 
           小写的bool就不用包含头文件。

2. 大写的是Window API的一个函数类型需要定义头文件

3.  BOOL不同于bool,前者是Windows定义的一个int型,后者才C的内置类型(C++标准数据类型)。