BOOL与bool TRUE与true FALSE与false 区别

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

猜你喜欢

转载自blog.csdn.net/SwordArcher/article/details/81391447