C++中NULL等于啥

文章目录

      • **一、`NULL` 的标准定义**
      • **二、常见实现方式**
        • 1. **定义为整数 `0`**
        • 2. **定义为 `0L` 或 `(void*)0`**(较少见)
      • **三、与C语言的关键区别**
      • **四、`NULL` 在C++中的问题**
        • 1. **重载函数匹配歧义**
        • 2. **模板参数推导错误**
      • **五、C++11+ 的替代方案:`nullptr`**
      • **六、最佳实践**
      • **七、总结**

在C++中, NULL 的定义与行为需要结合语言标准和实际实现来理解。以下是详细解析:

一、NULL 的标准定义

C++标准(如C++20 §17.2)规定:

The macro NULL is defined as a null pointer constant.

NULL 是一个预处理宏,其值为空指针常量。但标准并未强制规定其具体实现方式,而是留给编译器自由选择。

二、常见实现方式

1. 定义为整数 0

大多数C++编译器(如GCC、Clang)将 NULL 定义为:

#

你可能感兴趣的:(嵌入式/Linux,#,C++编程法则,c++,开发语言)