糯米文學吧

位置:首頁 > 計算機 > C語言

C語言關鍵字static的使用

C語言1.88W

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

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

  1、static 修飾函數

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

  2、static 修飾變量

無論在文件的哪個位置,用static修飾 變量,這個變量運行時都是佔用的RAM裏的靜態全局數據區,再説一遍,靜態全局。在程序運行的整個生命週期內是不會釋放的,這個我們也在前面單片機相關的文章裏講過了。

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

函數外static修飾的變量,僅僅限定與本文件使用,所以你可以不關注本文件以外的信息,就知道這個變量是如何變化和使用的,這就減小了你閲讀程序的難度。

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

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