Contents

BOOL vs. VARIANT_BOOL vs. BOOLEAN vs. bool解释了这几种布尔类型的来龙去脉。

写Windows1.0的时候C风头正盛,所以最老的BOOL是C风格的,它的定义如下:

1
typedef int BOOL;

接着OS/2 NT的开发人员引入了BOOLEAN,定义如下:

1
typedef BYTE BOOLEAN;

然后Visual Basic的人引入了VARIANT_BOOL,定义如下:注意VARIANT_TRUE是-1!

1
2
3
typedef short VARIANT_BOOL;
#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)

bool是C++的数据类型,但是在Win32中基本看不见,因为Window2是C兼容的。

Contents