當前位置:才華齋>計算機>C語言>

C語言關鍵字static的使用

C語言 閱讀(1.92W)

static的作用,是為了模組化設計而成立的,因為static的作用限定了變數或者函式能夠被訪問的作用域。下面是相關的知識,歡迎閱讀。

C語言關鍵字static的使用
  static 可以修飾變數和函式

  1、static 修飾函式

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

  2、static 修飾變數

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

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

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

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

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