天天看點

[Windows程式設計] C++中 bool,BOOL ,VARIANT_BOOL 的差別

小寫的bool 的是C++ 标準定義的布爾類型, 各個編譯器處理的方式不同,Visual C++ 把bool 定為一個位元組。小寫的true 和 false 也都是C++ 标準定義的關鍵字。

大寫的BOOL 是Windows 裡面定義的布爾類型,實質上int, 在 windows 頭檔案面有定義:

typedef int BOOL;

#define TRUE 1

#define FALSE 0

VARIANT_BOOL 是COM 使用的布爾類型, 其實質上是 short 類型:

typedef short VARIANT_BOOL;

#define VARIANT_TRUE ((VARIANT_BOOL)-1)

#define VARIANT_FALSE ((VARIANT_BOOL)0)

可以看出, 3中BOOL類型的長度不一樣,而且TRUE 和 FALSE 的值也不同,在互相轉換的時候需要注意。

 本文轉自 陳本峰 51CTO部落格,原文連結:http://blog.51cto.com/wingeek/273995,如需轉載請自行聯系原作者