4种语言布尔类型值的比较

这篇博客探讨了C语言、C++、Java、JavaScript和Objective-C中布尔类型的实现和差异。C语言在C99之前没有布尔类型,C++引入了bool关键字,Java的boolean是1字节,JavaScript只有true和false,Objective-C则有BOOL和bool两种形式,其中BOOL是signed char类型。文章还提醒在OC中使用BOOL时要注意非0值可能被视为true。
摘要由CSDN通过智能技术生成
各语言的布尔值 和空值

C语言:
在C99出现之前,C语言是没有布尔类型的,只能使用宏定义定义
typedef enum{false=0, true=1} bool; //注意这里的false和true其实表示的是int类型
而在C99中定义了一个头文件stdbool.h
#define bool    _Bool
#define true    1
#define false   0
对bool做了声明,此时它还是int类型。

C++语言:
bool类型实际上是C++引入的。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++会帮你做隐式转换。

BOOL值是宏定义,对应TRUE , FALSE. 1表示TRUE, 0表示FALSE。一般用0表示FALSE,非0表示真。

bool在C++是1个字节,而BOOL是int类型,大小视具体环境而定。
BOOL在windef.h中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值