TEST.CPP
#include "test.hpp"
void f1() { }
namespace {
void f2() {}
}
namespace test {
void f3() { }
}
如果我错了,请纠正我,但是:
f1
如果在头文件中声明或使用extern
语句,则可以从外部调用f2
无法从外部调用f3
在头文件中声明(并且正确加前缀 - test::
),则可以从外部调用它。如果它没有在标题中声明,则无法调用它?我是对的吗?
答案 0 :(得分:3)
您的问题标题具有误导性。不要在标题中放置匿名命名空间。
无法从test.cpp外部调用 f2
,更正。
f1
和f3
。这些可以在标题中,但是没有什么能阻止其他.cpp文件只是将 的代码放在标题中,即使你没有提供。
此外,函数声明不需要extern
。
void f1();
namespace test {
void f3();
}