我可以在函数内使用未命名的命名空间而不是静态变量吗?

时间:2014-07-30 11:09:25

标签: c++ static unnamed-namespace

我浏览了有关未命名命名空间的所有相关问题,但我无法看到它们是否以及如何在此上下文中替换static变量:

returnType dummyfun () {

    static int staticInt;

    // do something...
};

1 个答案:

答案 0 :(得分:3)

未命名的命名空间不能用于替换内部静态变量。

未命名的命名空间在函数范围之外声明。它们对于允​​许在翻译单元中访问函数和变量名称同时将这些相同的名称隐藏在翻译单元之外非常有用。

内部静态变量是一个变量,其名称只能在声明它的函数范围内访问,并且在调用函数之间其范围仍然存在。