关于static变量的生命周期。一般来说:static声明的变量初始化,只是在程序运行的第一次被执行。不过有例外,那就是如果该变量定义在dll 内,那么该变量的初始化工作是在dll被装载时执行,在这种情况下,程序虽然只运行一次,但是该静态变量可能会被初始化好几次(与dll被装载的次数有 关). 这个问题本质上是:static声明的变量的生命周期与包含它的组件相关。从这个意义上,我们可以说,static变量在不同的包含组件(EXE或 DLL)上表现出不同行为,移植能力差,容易造成BUG,这样的BUG也不容易发现。我们在开发程序的时候,不可能去假设该静态变量是被包含在什么样的组 件里。我想,这也是一个不鼓励使用static变量的一个重要原因。
动态库中不推荐使用static变量
最新推荐文章于 2023-02-09 10:39:47 发布