bool (C++)
此关键字是内置类型。此类型的变量可以具有值 true 和 错误。条件表达式具有该类型 bool ,所以具有类型 bool的值。例如, i!=0 现在具有 true 或 错误 基于 i的值。
值 true 和 错误 具有以下关系:
!false == true
!true == false
在以下语句:
if (condexpr1) statement1;
如果 condexpr1 是 true, statement1 总是执行;如果 condexpr1 是 错误, statement1 不会执行。
当后缀或前缀 ++ 运算符应用于类型 bool的变量时,变量设置为 true。后缀或前缀 -- 运算符不能应用于此类型的变量。
bool 类型参与了整数提升。类型 bool 的 r 值可以转换为类型 int的 r 值与 错误 成为零和 true 需的一个为; 否则为。为不同类型, bool 参与重载决策。
Microsoft 专用
在 visual C++4.2,标准 C++ 头文件包含的等效于 bool 与 int的 typedef 。在 Visual C++ 5.0 及更高版本中, bool 实现为具有 1 字节范围的内置类型。这意味着为 Visual C++ 4.2, sizeof (bool) 调用为 4,,而在 Visual C++ 5.0 及更高版本中,同一调用将 1。这可能导致内存损坏问题,如果定义类型 bool 的结构成员在 Visual C++ 4.2 以及与 4.2 混合 OBJ 文件 (对象) 和/或 DLL 生成和 5.0 或更高编译器。
__BOOL_DEFINED 宏可用于包装依赖打开的代码 bool 是否支持。
示例
// bool.cpp
#include <stdio.h>
int main()
{
#if !defined(__BOOL_DEFINED)
printf_s("bool is not supported\n");
#elif defined(__BOOL_DEFINED)
printf_s("bool is supported\n");
#endif
}