C 語言 static 關鍵字詳解

2021-10-05 02:02:20 字數 750 閱讀 6144

關鍵字 static 常見兩種情況是:在函式前加 static、在變數前加 static。

一、在函式前加 static

表明這個函式只能用於本檔案,其他檔案不能引用該函式。

二、在變數前加 static

(1)全域性變數前

普通全域性變數對整個工程可見,其他檔案可使用 extern 外部宣告後直接使用。

靜態全域性變數僅對當前檔案可見,其他檔案不可訪問,可見它與在函式前面加 static 有著類似作用。

(2)區域性變數前

三、預設初始化為0,在靜態資料區(注意:全域性變數也儲存在靜態資料區),記憶體中所有位元組預設初始化為 0x00。

因此,有了上面這 3 點的基礎,回答常見的面試題易如反掌,如:

1、static 全域性變數與普通的全域性變數有什麼區別?

(1)普通全域性變數對整個工程可見,其他檔案可使用 extern 外部宣告後直接使用;static 全域性變數僅對當前檔案可見,其他檔案不可訪問。

(2)全域性變數本身就是靜態儲存方式,靜態全域性變數肯定也是靜態儲存方式,這兩者在儲存方式上相同。

(3)static 全域性變數只初始化一次,防止在其他檔案單元中引用,

2、static 函式與普通函式有什麼區別?

static 函式表明這個函式只能用於本檔案,其他檔案不能引用該函式。

3、static 區域性變數與普通區域性變數有什麼區別?

(1)static 區域性變數與全域性變數一樣,資料存放在全域性區域,在程式剛開始執行時就初始化,也是唯一的一次初始化。

C語言中static關鍵字詳解

c語言中staic關鍵字很簡單,簡單到你的任何乙個專案中可以不寫乙個staic關鍵字也是沒有問題的。寫這篇章主要是一下自己的staic的理解和應用,當然在章開頭依舊要照本宣科簡述一下static關鍵字。static關鍵字在嵌入式c語言當中很簡單,它有三個作用 作用一 在函式體,乙個被宣告為靜態的變數...

C語言關鍵字Static

c語言中static的語義 1.static變數 1 區域性 a.靜態區域性變數在函式內定義,生存期為整個源程式,但作用域與自動變數相同,只能在定義該變數的函式內使用。退出該函式後,儘管該變數還繼續存在,但不能使用它。b.對基本型別的靜態區域性變數若在說明時未賦以初值,則系統自動賦予0值。而對自動變...

c語言static關鍵字

以前一直覺得static關鍵字僅僅是定義乙個靜態的變數,今天在看書的時候發現一切沒那麼簡單,遂決定記錄下來。1.static關鍵字指明變數是乙個靜態變數,即static修飾的區域性變數並不是分配在棧中,而是分配在程式的靜態區中,所以在函式呼叫後其記憶體並不會被釋放。這裡需要注意乙個點,也就是說並不是...