windef.h中的定义

NULL

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

通过定义我们可以看出,它们之间其实是没有太大的区别,只不过在C语言中定义
NULL时会进行一次强制转型。我想之所以创造出NULL,大概是为了增强代码的可读性,
但这只是我的臆测,无从考究。


逻辑FALSE/false


虽然将FALSE/false放在了一起,但是你必须清楚FALSE和false之间不只是大小写这么简
单的差别。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在C++里
占用的是1个字节,所以false也只占用1个字节



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值