1
我在Linux代码中看到了一堆名为__foo的函数。双下划线代表什么,什么时候应该使用它?__func函数的约定是什么?
我在Linux代码中看到了一堆名为__foo的函数。双下划线代表什么,什么时候应该使用它?__func函数的约定是什么?
这意味着它是一个保留的标识符。 C++ 03和C99标准都提到了这一点。
C99:
7.1.3保留标识符
- 以下划线和一个大写字母或其他下划线,始终保留用于任何用途的所有标识符。
- 以下划线开头的所有标识符总是保留用作普通标签名称空间和标签名称空间中具有文件范围的标识符。
C++ 03:
包含双下划线(_ _)或以下划线后跟大写字母(2.11)开始的每个名称被保留以用于任何用途的实施方式。
您也可以参考:
保留什么样的实现?像私人功能?为什么不使用私有/未导出的头文件功能? – EpsilonVector
编译器和编译器的库实现。 –
这是为了避免标识冲突。 – Hailei