靜態全局變數

靜態全局變數,又稱全局靜態變數,是在全局變數前加一個static,使該變數只在這個源檔案中可用。

全局變數也稱為外部變數,它是在函式外部定義的變數。 它不屬於哪一個函式,它屬於一個源程式檔案。其作用域是從定義該變數的位置開始至源檔案結束。
全局變數是在所有函式體的外部定義的,程式的所在部分(甚至其它檔案中的代碼)都可以使用。全局變數不受作用域的影響(也就是說,全局變數的生命期一直到程式的結束)。如果在一個檔案中使用extern關鍵字來聲明另一個檔案中存在的全局變數,那么這個檔案可以使用這個數據。
在多檔案組成的程式里,全局變數與全局靜態變數是不同的。在某一層次聲明的變數的作用域就終止於該變數所在層次的末尾。唯一的區別是全局靜態變數使得該變數成為定義該變數的源檔案所獨享。如果在一個檔案中使用extern關鍵字來聲明另一個檔案中存在的靜態全局變數,這個檔案也不能夠使用這個數據。
作用域的例外:
根據ANSI C++的標準,在for語句頭中聲明的變數的作用域的確應該在for語句的末尾結束。然而較舊版本的VC++(現在主流使用的版本基本都符合)卻沒有完全符合這個標準,它認為for語句頭中聲明的變數作用域到包含該for語句的最小語句塊結束。儘管如此,我們還是應該按照ANSI C++標準來認知變數的作用域。

相關詞條

熱門詞條

聯絡我們