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