windows - BOOL和bool有什么区别?




winapi visual-c++ (2)

bool是内置的C ++类型,而BOOL是Microsoft特定类型,定义为int 。 你可以在windef.h找到它:

typedef int                 BOOL;

#ifndef FALSE
#define FALSE               0
#endif

#ifndef TRUE
#define TRUE                1
#endif

booltruefalse ,而对于BOOL您可以使用任何int值,但windef.h头中定义了TRUEFALSE宏。

这意味着sizeof运算符将为bool 1(但标准状态, bool的大小是实现定义的),而BOOL的大小为4。

资料来源: Codeguru文章

在VC ++中,我们有数据类型“BOOL”,它可以假定值为TRUE或FALSE,并且我们有数据类型“bool”,它可以假定值为true或false。

它们之间的区别是什么时候应该使用每种数据类型?


在将bool抛入C ++之前,Windows API具有此类型。 这就是为什么它仍然存在于所有采用BOOL的Windows功能中。 C不支持bool数据类型,因此BOOL必须保留。





mfc