C++ BOOL与BOOL的区别与优势

C++ BOOL与BOOL的区别与优势,c++,boolean,C++,Boolean,我一直在玩一些返回BOOL的函数。我知道如何使用它们,但布尔和布尔有什么区别?我还看了一些来自directX的示例代码,他们使用它作为int?使用int、bool或bool是否有优势?我的主要问题是我应该使用哪一个?BOOL是Windows特定的类型名称;它是int的typedef(别名) 历史上,它可能是微软在内置的 BoOL 类型被添加到C++之前。 对于任何不需要与Windows API对话的新代码,只需使用bool // header file void f( int ); // ok

我一直在玩一些返回BOOL的函数。我知道如何使用它们,但布尔和布尔有什么区别?我还看了一些来自directX的示例代码,他们使用它作为int?使用int、bool或bool是否有优势?我的主要问题是我应该使用哪一个?

BOOL
是Windows特定的类型名称;它是
int
typedef
(别名)

历史上,它可能是微软在内置的<代码> BoOL 类型被添加到C++之前。 对于任何不需要与Windows API对话的新代码,只需使用

bool

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function
仅对必须符合Windows API的代码使用
BOOL


(如果Windows API是在今天从头开始编写的,那么它可能会使用C++内置的
bool
类型,而不是自己发明的。
bool
是历史的遗迹。)

bool
是Windows特有的类型名称;它是
int
typedef
(别名)

历史上,它可能是微软在内置的<代码> BoOL 类型被添加到C++之前。 对于任何不需要与Windows API对话的新代码,只需使用

bool

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function
仅对必须符合Windows API的代码使用
BOOL


(如果Windows API是在今天从头开始编写的,那么它可能会使用C++内置的
bool
类型,而不是自己发明的。
bool
是历史的遗迹。)

bool
是Windows特有的类型名称;它是
int
typedef
(别名)

历史上,它可能是微软在内置的<代码> BoOL 类型被添加到C++之前。 对于任何不需要与Windows API对话的新代码,只需使用

bool

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function
仅对必须符合Windows API的代码使用
BOOL


(如果Windows API是在今天从头开始编写的,那么它可能会使用C++内置的
bool
类型,而不是自己发明的。
bool
是历史的遗迹。)

bool
是Windows特有的类型名称;它是
int
typedef
(别名)

历史上,它可能是微软在内置的<代码> BoOL 类型被添加到C++之前。 对于任何不需要与Windows API对话的新代码,只需使用

bool

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function
仅对必须符合Windows API的代码使用
BOOL


(如果Windows API是在今天从头开始编写的,那么它可能会使用C++内置的
bool
类型,而不是自己发明的。
bool
是历史遗留物。)

为了最好的类型安全性,在新代码中,应该使用bool作为布尔值。如果您使用BOOL之类的接口,则自动类型转换通常适用于您,但在其他情况下,您只需将BOOL视为表示布尔值的遗留整数

为了获得最佳的类型安全性,在新代码中,您应该使用bool作为布尔值。如果您使用BOOL之类的接口,则自动类型转换通常适用于您,但在其他情况下,您只需将BOOL视为表示布尔值的遗留整数

为了获得最佳的类型安全性,在新代码中,您应该使用bool作为布尔值。如果您使用BOOL之类的接口,则自动类型转换通常适用于您,但在其他情况下,您只需将BOOL视为表示布尔值的遗留整数

为了获得最佳的类型安全性,在新代码中,您应该使用bool作为布尔值。如果您使用BOOL之类的接口,则自动类型转换通常适用于您,但在其他情况下,您只需将BOOL视为表示布尔值的遗留整数

使用int、bool或bool有好处吗?

bool
相比,使用
bool
的一个优点是可以重载
bool
上的函数

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function


有关为什么使用
bool
而不是
bool
的更多信息,请阅读Herb Sutter的文章
使用int、bool或bool是否有优势?

bool
相比,使用
bool
的一个优点是可以重载
bool
上的函数

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function


有关为什么使用
bool
而不是
bool
的更多信息,请阅读Herb Sutter的文章
使用int、bool或bool是否有优势?

bool
相比,使用
bool
的一个优点是可以重载
bool
上的函数

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function


有关为什么使用
bool
而不是
bool
的更多信息,请阅读Herb Sutter的文章
使用int、bool或bool是否有优势?

bool
相比,使用
bool
的一个优点是可以重载
bool
上的函数

// header file
void f( int  ); // ok
void f( BOOL); // ok, redeclares the same function


有关为什么在
bool
上使用
bool
更有意义的更多信息,请阅读Herb Sutter的文章大多数编译器将
bool
的大小设置为1字节,而
int
的大小通常为4字节。 在这种情况下,如果对紧凑的结构使用
bool
,可以明显节省空间


现在,理论上,移动和
int
比移动一个字节快(
int
通常是本机机器字)。因此,在最大速度的微优化意义上,等于
int
BOOL
比等于字节的
BOOL
要好。

大多数编译器将
BOOL
的大小设为1字节,而
int
的大小通常为4字节。 在这种情况下,如果对紧凑的结构使用
bool
,可以明显节省空间

现在,理论上,移动和<