头文件中的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++及其扩展性。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM