c++ 中 BOOL与bool TRUE与true FALSE与false 区别 (转载)

http://blog.chinaunix.net/uid-28458801-id-3941112.html

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;

时间: 2024-10-25 08:27:27

c++ 中 BOOL与bool TRUE与true FALSE与false 区别 (转载)的相关文章

Webdriver中关于driver.navigate().to()和driver.get()使用的区别---转载

在做一个后台管理系统的自动化测试,在登录时遇到了一些问题,比如浏览器认为当前url不安全,会有一个拦截,无法直接打开登录页面.这里用到了driver.navigate().to()方法,特此mark下.下面是查询资料的收获: 最近用一个实际的web项目在学习Webdriver,关于新建一个备份任务的过程,先是有一个父页上button弹开一个子页,总共有4个子页,必须前一个页上的必填信息录完,才能在这个页面触发下一个子页. 如果在baseUrl1第一个子页录完信息,第一个子页有重命名校验和必填项校

一起talk C栗子吧(第一百六十八回:C语言实例--C语言中的布尔--bool类型)

各位看官们,大家好,上一回中咱们说的是控制终端字符颜色的例子,这一回咱们说的例子是:C语言中的布尔–bool类型 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,在数字电路中我们经常会遇到布尔类型,其实在编写软件的过程中也会使用布尔类型.布尔类型的变量只有两种值:真和假.在实际的编程过程中,我们经常定义宏,然后使用1表示真,0表示假.下面是具体的例子: #define TRUE 1 #define FALSE 0 例子中定义了两个宏,一个是TRUE,它的值是1,表示真:另外一个是F

javascript中 if(变量)和if(变量==true)的区别

if(判断表达式){执行内容} 如果判断表达式为true,则执行括号中的内容.这里,变量如果不为0,null,undefined,false,都会被处理为true.只要变量有非0的值或是某个对象,数组,字符串,都会认为true变量==true,变量为bool值,并且为true,才认为符合. var a;//定义一个变量没有初始化 if(a){alert(1) return};//这里不会执行,因为a没有值,所以为false: a=0//这里给a赋值为0 if(a){alert(1) return

C++中UINT32和INT32以及int,BOOL和bool的区别

在AndroidHAL层开发中,编写C++代码的时候,遇到了数据类型的困扰,经过查找资料,总结如下: 1.UNIT32和int以及INT32的区别: (1).int默认是signed int.也就是有符号整型,最高位是符号位.数据只占31位. (2).INT32是unsigned int的别名.typedef unsigned int UINT32 unsigned int是无符号整型,最高位也是数据位,数据占32位. (3).INT32表示32位有符号的整数. (4).UINT32和INT32

js中可转bool为false的值

number :0为false,其他都为true. string:""为false,其他字符串都为真,PS: " "空格为true,"false"也为true. 对象:null为false,其他对象都是true. undefined:为false. NaN:为false. false:为false. js中, == 比较时会进行类型的转换,而 === 不会.

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法 当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内

<!-- str.startsWith('胡') 检查一个 字符串中是否有某字符 返回true false -->

1.<!-- str.startsWith('胡')  检查一个 字符串中是否有某字符 返回true false --> 2. vh 分享到选择其它项 复制本页链接 版本:CSS3 补充完善,提交问题欢迎微博上 @愚人码头 说明: 相对于视口的高度.视口被均分为100单位的vh 示例代码: h1 { font-size: 8vh; } 如果视口的高度是200mm,那么上述代码中h1元素的字号将为16mm,即(8x200)/100 兼容性: 浅绿 = 支持 红色 = 不支持 粉色 = 部分支持

jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别

jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别 var a = 元素本身的宽度: width() = a: innerWidth() = a+padding; outerWidth() = a+padding+border; outerWidth(true) = a+padding+border+margin; 在jQuery中,width()方法用于获得元素宽度:innerWidth()方法用于获得包括内边界(paddi

请将项目文件中的“AutoGenerateBindingRedirects”属性设置为 true 警告!!!

原文:请将项目文件中的"AutoGenerateBindingRedirects"属性设置为 true 警告!!! 原文地址:https://www.cnblogs.com/lonelyxmas/p/9678523.html