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
typedef int
typedef unsigned char
typedef unsigned short
typedef float
typedef FLOAT
typedef BOOL near
typedef BOOL far
typedef BYTE near
typedef BYTE far
typedef int near
typedef int far
俺要说两句:
1. 大写的BOOL是MFC的,要包含头文件的。
小写的bool就不用包含头文件。
2. 大写的是Window API的一个函数类型需要定义头文件
3. BOOL不同于bool,前者是Windows定义的一个int型,后者才C的内置类型(C++标准数据类型)。