__func函数的约定是什么?

Eps*_*tor 1 c linux coding-style

我在Linux代码中看到了一堆名为__foo的函数.双下划线代表什么,何时应该使用?

Hai*_*lei 5

这意味着它是一个保留的标识符.C++ 03和C99标准都提到了这一点.

C99:

7.1.3保留标识符

  • 所有以下划线开头的标识符以及大写字母或另一个下划线始终保留用于任何用途.
  • 所有以下划线开头的标识符始终保留用作普通和标记名称空间中具有文件范围的标识符.

C++ 03:

每个包含双下划线(_ _)或以下划线后跟大写字母(2.11)开头的名称都保留给实现以供任何使用.

你也可以参考: