头文件中的static变量

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++及其扩展性。

 

posted @ 2021-08-08 21:59  llovewhat  阅读(1704)  评论(0)    收藏  举报