C語言32個關鍵字 static

2021-08-04 10:42:51 字數 789 閱讀 1362

static 可以修飾變數和函式, 說白了就是修飾作用域,就是修飾作用域,就是修飾作用域。

static的作用,是為了模組化設計而成立的,因為static的作用限定了變數或者函式能夠被訪問的作用域。

static 修飾函式

函式的訪問範圍就被限定在本檔案以內,任何本檔案以外內容的訪問此函式,都是非法和無效的,編譯不會通過,提示找不到該符號。 所以,我們在進行乙個函式設計的時候,首先需要考慮的就是,這個函式的作用是什麼,作用範圍是什麼,我們應該怎麼去保證模組化。如果沒有被外部檔案訪問,那麼就把它限定為static。這就是這個static 修飾函式的用處。

static 修飾變數

無論在檔案的哪個位置,用static修飾 變數,這個變數執行時都是占用的ram裡的靜態全域性資料區,再說一遍,靜態全域性。在程式執行的整個生命週期內是不會釋放的,這個我們也在前面微控制器相關的文章裡講過了。

既然static 修飾的變數和全域性變數占用一樣的空間,為何還有static修飾,直接全域性變數也就ok了啊? 對於硬體來說,有沒有static自然是一樣的,但是對於軟體卻不一樣。

函式外static修飾的變數,僅僅限定與本檔案使用,所以你可以不關注本檔案以外的資訊,就知道這個變數是如何變化和使用的,這就減小了你閱讀程式的難度。

函式內static修飾的變數,僅僅限定於本函式使用,所以你可以不關注本函式以外的資訊,就知道這個變數是如何變化的,進一步減小了你閱讀程式的難度,也方便查詢問題。

所以能定義為static的就盡量定義為static(後面會再更新如何去除static,書寫可重入函式)。

可以參考以下內容

詳細說明:

C語言32個關鍵字

關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...

C語言32個關鍵字

c語言32個關鍵字 void 宣告函式無返回值或無引數,宣告無型別指標,顯式丟棄運算結果。a基本資料類 char 字元型型別資料,屬於整型資料的一種。型 5個 int整型資料,通常為編譯器指定的機器字長。float 單精度浮點型資料,屬於浮點資料的一種,小數點後儲存6位。double 雙精度浮點型資...

C語言32個關鍵字

常見關鍵字 int宣告整型變數 double 宣告雙精度變數 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 short 宣告短整型變數 signed 宣告有符號型別變數 unsigned 宣告無符號型別變數 struct 宣告結構體變數 union 宣告聯合資料型別...