我们可以有匿名命名空间(没有名字的命名空间)。它们可直接在同一程序中使用,并用于声明唯一标识符。据说它避免了全局静态变量。我的问题是如果它不是静态的,那么为什么默认值为零?
由于之前已经问过这些问题,但完全不清楚C++ 匿名命名空间:变量初始化为 0?
#include<iostream>
using namespace std;
namespace
{
int x; // Here x should have garbage value according to definition of anonymous namespace
}
int main()
{
cout << x << endl;// But x is throwing zero why?
}
Run Code Online (Sandbox Code Playgroud)