1. 头文件中的static变量
在头文件中定义static变量,多个源文件引用该头文件,static意义何在?
2021.6.5答:这相当于在不同源文件中定义同名static变量,因为static会只在各自的文件中生效并直至程序结束。
实际代码中,应该没有这种写法吧。这种做法违背了static的初衷。
如果这样写了,会怎样呢?
有没有这样的作用呢----把一个全局变量的作用域限制在某些源文件中。
2021.8.8 ubuntu测试结果:不同文件的同名static变量地址不同,和6.5的猜想相同。
在C和C++中static的不同含义:
static的共同作用:一是限定作用域,二是延长生命周期
C中,static限定作用域是 限定本文件中。
C++中,static限定作用域是 限定在类对象中。
---------
这也是C和C++较根本的区别,即C是过程式,C++是对象式。
过程式要明确过程,具体的从哪里到哪里,在哪里都是清清楚楚的,
对象式要抽象化成类,对象有可能在任何地方(文件)实例化,于是限定本文件的含义不如限定本类对象的含义更符合C++及其扩展性。