小寫的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,如需轉載請自行聯系原作者