頭文件中的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