在 C++ 中,将函数或变量放在匿名命名空间中会使其内部链接,即与static
在文件级别声明它相同,但符合 C++ 习惯。
普通命名空间中的匿名命名空间呢?是否还保证内部联动?
// foo.cpp
void func1() {
// external linkage
}
static void func2() {
// internal linkage
}
namespace {
void func3() {
// internal linkage
}
}
namespace ns1 {
void func4() {
// external linkage
}
namespace {
void func3() {
// still internal linkage?
}
}
}