对static变量的解析

      在C/C++程序中可以明了地将变量分为static和non-static,其中static可以分为local static和non-local static。local static变量是在函数内的全局变量除此之外其他的static都是non-local的变量,他们的区别就是local static在定义他的函数第一次被调用的时候分配空间并初始化,但是non-local的static变量在进入main(主)函数之前就初始化,两者的共同点就是在main函数结束的时候销毁。

      其中还需要区分一下基本类型和自定义类型(非基本类型),有无调用构造函数和析构函数的区别。

      non-local static变量可以运用于多线程的单例模式,但是需要在开启多线程前手动初始化,也就是进行第一次调用!



下为解析图:

对static变量的解析