_
开头的疯狂名称是避免 C 头文件中命名冲突的一种方法。我认为,在C++中,命名冲突可以通过
namespace
或其他方式轻松避免,而且没有必要这样做。然而,当我无意中打开
stl_vector.h
时,却发现到处都是这样疯狂的名字。我什至在类内部发现了像
__x
这样的变量(我不认为类内部的变量可能存在冲突)。我扫描了几个头文件,发现它很常见。我想知道为什么。我的编译器是
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
。
foo
的内容,则名为
foo
的预处理器宏并不关心。