// In namespace scope or global scope.
int i; // extern by default
const int ci; // static by default
extern const int eci; // explicitly extern
static int si; // explicitly static
// The same goes for functions (but there are no const functions).
int f(); // extern by default
static int sf(); // explicitly static
注意,与其使用static(内部链接),不如使用匿名< em > < / em >名称空间,你也可以在其中放入classes。尽管匿名名称空间允许extern链接,但匿名名称空间无法从其他翻译单元访问,因此链接有效地static。
namespace {
int i; // extern by default but unreachable from other translation units
class C; // extern by default but unreachable from other translation units
}