gpt4 book ai didi

c++ - C++ 中的 NULL 和 __null 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:38:39 26 4
gpt4 key购买 nike

我有以下代码:

MyType x = NULL;

NetBeans 给了我一个建议,把它改成这样:

MyType x = __null;

我查了一下,发现 __null 被称为“编译器关键字”,我认为这意味着它在编译器内部使用。我不明白为什么 NetBeans 建议将其更改为编译器关键字。

NULL__null在c++中有什么区别?

最佳答案

__nullg++ 内部的东西,其用途与 C++11 中添加的标准 nullptr 大致相同(始终如一个指针,绝不是整数)。

NULL定义为0,可以隐式使用整数、 bool 值、浮点值或指针,这在重载解析时是个问题,当你想调用专门带指针的函数时。

无论如何,您都不应该使用 __null 因为它是一个 g++ 实现细节,因此使用它可以保证代码不可移植。如果您可以依赖 C++11(现在肯定可以吗?),请使用 nullptr。如果没有,NULL 是您唯一的可移植选项。

关于c++ - C++ 中的 NULL 和 __null 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com