bool,_Bool和BOOL的区别

2018-01-16   创建人:Ruo_Xiao
开发环境:VS2010

一、源代码

#include "stdafx.h"
#include 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

    bool isOK1 = true;
    _Bool isOK2 = false;
    BOOL isOK3 = TRUE;

    cout<<"sizeof(bool) = "<<sizeof(bool)<cout<<"isOK1 = "<cout<cout<<"sizeof(_Bool) = "<<sizeof(_Bool)<cout<<"isOK2 = "<cout<cout<<"sizeof(BOOL) = "<<sizeof(BOOL)<cout<<"isOK3 = "<cout<cin.get();
    return 0;
}

结果:
bool,_Bool和BOOL的区别_第1张图片

typedef int                 BOOL;

#ifndef FALSE
#define FALSE               0
#endif

#ifndef TRUE
#define TRUE                1
#endif

二、总结

由以上信息可知:

  1. bool和_Bool都占1个字节,标准赋值为“true”和“false”,但是二者在机器中被表示成了“1”和“0”。
  2. BOOL、TRUE和FALSE,定义于WinDef.h头文件中。实际上BOOL为int型,占4个字节,标准赋值:TRUE和FALSE。TRUE和FALSE在预处理阶段都会分别被1和0替换。
  3. 额外:
    (1)bool:C++中关键字,布尔类型。
    (2)_Bool:C99中的关键字,布尔类型。(K&R C、ANSI C、C95都没有自己的布尔类型)
    (3)BOOL:是微软定义的布尔类型。。

你可能感兴趣的:(C/Cpp)