Class members prefixed with underscore (_)
在我们的项目中,我们决定在成员变量和一些私有/受保护的方法前面加下划线(因此加上"
在一次讨论中,有人声称不鼓励这样做,因为某些平台上的某些编译器/链接器不兼容。因为我们想成为一个尽可能便携式,我想确定。
我还认为,用C中的下划线在全球前缀可能是一个问题。
是否同样适用于C++链接,如果是,那么在哪种情况下(平台/编译器/链接器)?
从C++ 03标准:(7.4.4.3.1.2/1)
Certain sets of names and function signatures are always reserved to the implementation:
Each name that contains a double underscore (
__ ) or begins with an underscore followed by an upper-case letter (2.11) is reserved to the implementation for any use.Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.
等效文本存在于C++ 11中:7.4.4.3.2/1。
就我个人而言,我使用
顺便说一下,我在函数中也使用了
(然后我通常会被so用户抨击,因为它看起来像匈牙利符号;-)但是它不是。)
请注意:在C++标识符中使用下划线的规则是什么?
我已经看到很多代码使用单下划线作为前缀,或者在标识符中使用双下划线,这很简单。但你永远不知道。标识符是保留的,根据编译器的不同,可能会发生任何事情。