BOOL 定义 typedef int BOOL; #define FALSE 0 #define TRUE 1 不能完全重载,如: //file.h void f(int ); // ok void f(BOOL); // ok // file.cpp void f(int) {/*….*/} // ok void f(BOOL) {/*….*/} // 错误,重新声明 而bool(false,true)是C++内置的类型,可以避免上述的问题。 bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以来说:false/true只占用1个字节,而 TRUE/FALSE视具体环境而言. 以下是BOOL在windef.h中的定义: typedef int BOOL; false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,这要用途是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义: #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif 也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过我们在使用中没有这种感觉,因为C++会帮你做隐式转换。 PS:非零即为真
C++中的bool与BOOL
最新推荐文章于 2024-04-12 02:56:59 发布