複製鏈接
請複製以下鏈接發送給好友

靜態全局變量

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