根據《c程式語言(第二版)》中4.6 靜態變數,總結如下:
static用在三個地方分別為:宣告靜態外部變數、宣告靜態函式、宣告內部變數。
1、宣告靜態外部變數:只能在宣告的檔案中呼叫,在工程的其他檔案中使用extern 也沒辦法呼叫。
(需要注意的是,這裡的檔案為.c或是.cpp檔案。如果為標頭檔案.h,宣告的靜態外部變數在引入此標頭檔案的程式中都能呼叫)
(即使在.h檔案中宣告的靜態函式,在引入此標頭檔案的程式中也沒辦法使用。(與靜態的外部變數不同,外部變數在標頭檔案中相當於直接加入到程式中了。我這麼 理 解的))
3、宣告內部靜態變數:只能在函式內部使用。
(與普通的內部變數不同的是,它不會因為函式呼叫完畢而消失,它是一種只能在某個特定函式中使用但一直占用記憶體空間的變數。)
c語言中static 用法
static在c裡面可以用來修飾變數,也可以用來修飾函式。先看用來修飾變數的時候。變數在c裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。int a int main a是全域性變數,b是棧變數,c是堆變數。static對全域性變數的修飾,可以認為是限制了只能是本...
c語言中static 用法
static在c裡面可以用來修飾變數,也可以用來修飾函式。先看用來修飾變數的時候。變數在c裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。int a int main a是全域性變數,b是棧變數,c是堆變數。static對全域性變數的修飾,可以認為是限制了只能是本...
c語言中static 用法
static在c裡面可以用來修飾變數,也可以用來修飾函式。先看用來修飾變數的時候。變數在c裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。int a int main a是全域性變數,b是棧變數,c是堆變數。static對全域性變數的修飾,可以認為是限制了只能是本...