BOOL与bool TRUE与true FALSE与false 区别
#include "stdafx.h"
#include <iostream>
using namespace std;
#if 0
1.FALSE / TRUE与false / true的区别:
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++会帮你做隐式转换。
2.BOOL与bool的区别:
(1)类型不同
BOOL为int型 bool为布尔型
以下是BOOL在windef.h中的定义:
typedef int BOOL;
(2)长度不同
bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节
(3)取值不同
bool取值false和true,是0和非0的区别
BOOL取值FALSE和TRUE,是0和1的区别
3.NULL与0的区别:
还是让我们看一下windef.h中NULL的定义:
#ifndef NULL
#ifdef __cplusplus//这个是指示是用C++来编译程序
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
所以说:它们没有区别,只不过在C里面会做一个强制类型转换
#endif