AFAIK 我们应该为全局对象使用一个未命名的命名空间,我们希望使它们成为翻译单元的本地对象,而不是将这些对象定义为static
全局对象。所以那里的对象是隐含的静态的。
我想知道在没有初始化程序(默认初始化)的情况下定义内置类型的对象是否int
具有与显式定义相同的定义值static
?
这是一个例子:
namespace ns{
namespace {
int x; // static
}
int y; // local non-static. // indeterminated value (UB if its value used)
}
int main(){
std::cout << ns::x << "\n";
std::cout << ns::y << "\n";
}