我在无数的C/C++头文件和源文件中看到过这种情况。
除了个人偏好之外,这些不同符号的含义是什么?
_NAME__NAME_NAME___NAME__NAME_t老实说,我唯一理解的就是_NAME,它是类的私有成员(至少在C#中是这样)。
有人能解释一下他们之间的区别吗?
如果有其他值得注意的符号,请提到它们(即使是在其他类似的语言中)。
谢谢!
发布于 2010-11-24 18:42:40
以_或__开头的名称通常用于保留标识符,您不应该定义/创建以该约定开头的标识符。(_与上大小写如下)
来自C99标准7.1.3 -“保留标识符”
-所有以下划线和大写字母或另一个下划线开头的identifiers始终保留给任何用途。 -所有以下划线开头的identifiers始终保留为identifiers,在普通和标记名称空间中都具有file作用域。
来自C++03标准(对C++98的修正),17.4.3.1.2节-“全球名称”
-每个包含双下划线(_ _)或以下划线开头以大写字母(2.11)开头的名称都保留给实现,供任何使用。 -以下划线开头的每个名称保留给实现,以便作为全局命名空间中的名称使用。
发布于 2010-11-24 18:44:05
除了NAME_t之外,所有这些名称都保留给“实现”,即标准的C++库代码。,您被禁止在自己的代码中使用此类名称。
第17.6.3.3.2节“全球名称”第1节规定:
某些名称和函数签名始终保留在实现中:
(请注意,这些规则禁止像我经常看到的__MY_FILE_H这样的头保护。)
发布于 2010-11-24 18:44:34
以_t结尾的类型是POSIX中的预留。
https://stackoverflow.com/questions/4270316
复制相似问题