静态变量将最终出现在DLL文件的.BSS或.DATA部分中。链接到该DLL的可执行文件可能甚至不知道它的存在。当EXE加载DLL时,系统会为其设置DLL的数据部分,然后调用DllMain()。这就是DLL的静态变量出现并得到初始化的时候。
是的。不同类型的静态变量之间的区别在于: 作用域 动态初始化的初始化时间。 实现(注意BSS和DATA段是实现细节)通常是相同的。为确保正确初始化动态初始化的静态函数变量,一种方法是添加一个额外的布尔值来指示需要动态初始化。