BOOL、bool的区别 && NULL、0、nullptr的区别

本文详细介绍了BOOL和bool在类型、长度及取值上的区别,以及NULL、0和nullptr在C++中的定义、使用原因和潜在问题。NULL由于可以被误解析为整型,可能导致调用错误的函数重载,推荐使用0作为空指针。C++11引入的nullptr解决了类型安全问题,避免了类型转换的潜在风险。
摘要由CSDN通过智能技术生成

一、BOOL、bool

1、类型不同

bool为布尔型、 BOOL为int型

2、长度不同

bool只有一个字节、BOOL为 int 因此长度根据实际环境来定,一般为4个字节

3、取值不同

bool取值 0为 false 、 非0为true;

BOOL取值 0 为false、1为true;


二、NULL、0、nullptr

1、定义不同

c语言中 NULL被定义为 #define NULL ((void *)0)

c++中NULL被定义为 #define NULL 0

nullptr是C++11中定义的

一般编译其的头文件会这么定义

#ifdef __cplusplus

#define NULL 0

#else

#define NULL ((void *)0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值