C++匿名命名空间:变量初始化为0?

loo*_*oop 3 c++ static

这里有一个相关的未回答的问题:
c ++ - 变量在未命名的命名空间中自动初始化为0?- 堆栈溢出

当我在CI中有一个全局函数指针时,可以将它声明为静态,并将其初始化为NULL并且仅对我的文件可用.在C++中,我将很多东西转换为匿名命名空间,但我很好奇他们是否拥有相同的保证.如果我在匿名命名空间中有一个函数指针,它会被初始化为null吗?

谢谢

Jam*_*lis 9

程序启动时,所有具有静态存储持续时间的变量均为零初始化.这些包括在命名空间范围内声明的所有变量(在全局命名空间或任何其他命名空间中,包括未命名的命名空间).

  • "所有没有动态存储持续时间,没有线程存储持续时间且不是本地的变量都有_static存储持续时间_.[...]关键字`static`可用于声明具有静态存储持续时间的局部变量. [...]应用于类定义中的类数据成员的关键字`static`为数据成员提供静态存储持续时间." _- [basic.stc.static] 3.7.1_ (2认同)