一:在網(wǎng)上找到了BOOL和bool的區(qū)別:
1、類型不同
BOOL為int型
bool為布爾型
2、長度不同
bool只有一個(gè)字節(jié)
BOOL長度視實(shí)際環(huán)境來定,一般可認(rèn)為是4個(gè)字節(jié)
3、取值不同
bool取值false和true,是0和1的區(qū)別
BOOL取值FALSE和TRUE,是0和非0的區(qū)別
二:
bool是標(biāo)準(zhǔn)C++數(shù)據(jù)類型,可取值true和false。單獨(dú)占一個(gè)字節(jié),
如果數(shù)個(gè)bool對(duì)象列在一起,可能會(huì)各占一個(gè)bit,這取決于編譯器。
BOOL是微軟定義的typedef int BOOL。與bool不同,它是一個(gè)三值邏輯
,
TRUE/FALSE/ERROR,返回值為>0的整數(shù)為TRUE,0為FALSE,-1為ERROR。
Win32 API中很多返回值為BOOL的函數(shù)都是三值邏輯。比如GetMessage
().
三:
大BOOL和小bool之間的區(qū)別:
1、類型不同
BOOL為int型
bool為布爾型
2、長度不同
bool只有一個(gè)字節(jié)
BOOL長度視實(shí)際環(huán)境來定,一般可認(rèn)為是4個(gè)字節(jié)
3、取值不同
bool取值false和true,是0和1的區(qū)別
BOOL取值FALSE和TRUE,是0和非0的區(qū)別
4、例子
bool x=3;? //告警
bool x=1;? //正確
BOOL x=3;? //正確
BOOL x=3.3;? //告警
注:windows為了兼容問題定義的基礎(chǔ)變量。
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
?
? ); ?