我看到了几个关于静态局部变量和类的静态成员的问题。来自此评论中的一条评论,可能是最清晰的一个链接
C++ 入门 说:
每个局部静态变量在第一次执行通过对象的定义之前被初始化。当函数结束时,局部静态不会被破坏;它们在程序终止时被销毁。
但是我发现上面的“程序终止时”的描述是模棱两可的。这是否意味着应用程序退出?或者如果它是插件,是否意味着插件已卸载?
我注意到以前在 Linux 上以发布模式编译时,我的插件中的局部静态变量没有被销毁。但是当我将它更改为类成员时,它会在插件卸载时正确销毁。类/局部静态变量仅在插件中使用。
任何人都可以给出一些解释吗?