可能重复:
为什么人们在C ++中如此使用__(双下划线)?
我正在研究Linux内核编程代码。
有一些数据结构和函数以双下划线开始,如:
__u32 len
这与正常variables有什么不同?
这意味着这是一个系统保留名称。 C标准规定,以两个下划线或下划线和大写字母开头的所有名称都保留用于系统或编译器,不应在应用程序代码中定义。
其他的答案是正确的,它保留了执行。 当然在这里,Linux应该超越20世纪,使用标准的 uint32_t
类型,而不是大量的非标准名称( __u32
, u_int32_t
,…),它们困扰着传统的Unices。
这是一种类型,在这里定义(以及其他几个地方)。
按照惯例,通常在类型,变量或函数名称前加一个双下划线表示一个总是保留的名称,如当前标准(C99)的7.1.3节所定义。