在C中,“return;”与“return NULL;”相同吗?

在C中,“return;”与“return NULL;”相同吗?,第1张

概述我的问题是回归;与返回NULL相同;在C? 据我所知,在C中,返回NULL;与返回0相同;在指针的上下文中.显然对于整数,情况并非如此,因为NULL不能被添加,减去等等.并且有些人鼓励使用0而不是指针使用NULL,因为它更便于移植.我很好奇这是否是发生等价的另一个例子. 我怀疑他们是等同的,因为回归;是说’没有’,NULL是’没什么’.但是,如果有人可以确认或否认这一点(当然有解释),我将非常感激 我的问题是回归;与返回NulL相同;在C?

据我所知,在C中,返回NulL;与返回0相同;在指针的上下文中.显然对于整数,情况并非如此,因为NulL不能被添加,减去等等.并且有些人鼓励使用0而不是指针使用NulL,因为它更便于移植.我很好奇这是否是发生等价的另一个例子.

我怀疑他们是等同的,因为回归;是说’没有’,NulL是’没什么’.但是,如果有人可以确认或否认这一点(当然有解释),我将非常感激!

解决方法

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替换,并且如果没有其他内容可以自我记录.

总结

以上是内存溢出为你收集整理的在C中,“return;”与“return NULL;”相同吗?全部内容,希望文章能够帮你解决在C中,“return;”与“return NULL;”相同吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存