c语言中return null,在C中,“return;”与“return NULL;”相同吗?

本文讨论了在C++中return NULL与return 0在指针上下文中的等价性。尽管NULL和0在某些情况下可以互换,但考虑到NULL的实现可能因编译器而异,使用0可能更有利于移植性和C11标准下替换为nullptr的便捷性。作者建议在指针场景下使用0代替NULL,因为这在某些现代编译器中会被鼓励,并且在转换到C11时更方便替换 nullptr。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

is return; the same as return NULL; in C++?

没有.

return用于从没有返回值的函数“中断”,即返回类型为void.

return NULL返回值NULL,并且找到的函数的返回类型必须与NULL兼容.

I understand that in C++, return NULL; is the same as return 0; in the context of pointers.

有点. NULL可能不等于0,但它至少会转换为.

Obviously for integers, this is not the case as NULL cannot be added, subtracted, etc.

您可以对指针执行加法和减法.但是,无论如何,NULL必须具有整数类型(在C 03中为4.10 / 1和18.1 / 4),因此它没有实际意义. NULL很可能是一个扩展为0或0UL的宏.

一些现代编译器至少会警告你,如果它实际上是你写的NULL.

And that it is encouraged by some to use 0 instead of NULL for pointers because it is more convenient for portability. I’m curious if this is another instance where an equivalence occurs.

不,我不同意这个建议.虽然我可以看到它的来源,但由于NULL的确切定义因实现而异,因此当切换到C 11时,使用NULL将更容易用nullptr替换,并且如果没有其他内容可以自我记录.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值