| FALSE/TRUE与false/true的区别 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的区别: bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以 来说:false/true只占用1个字节,而TRUE/FALSE视具体环境而言,以下是BOOL在windef .h中的定义:typedef int BOOL; 3.NULL与0的区别: 还是让我们看一下windef.h中NULL的定义: #ifndef NULL #ifdef __cplusplus//这个是指示是用C++来编译程序 #define NULL 0 #else #define NULL ((void *)0) #endif #endif 所以说:它们没有区别,只不过在C里面会做一个强制类型转换。 BOOL和bool的区别 一、 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 二: bool是标准C++数据类型,可取值true和false。单独占一个字节, 如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。 BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑, TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。 Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage(). 三: 大BOOL和小bool之间的区别: 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 4、例子 bool x=3; //告警 bool x=1; //正确 BOOL x=3; //正确 BOOL x=3.3; //告警 注:windows为了兼容问题定义的基础变量。 typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL near *PBOOL; typedef BOOL far *LPBOOL; typedef BYTE near *PBYTE; typedef BYTE far *LPBYTE; typedef int near *PINT; typedef int far *LPINT; |
更多回帖