C語言中static相關

1.      對於全局static變量,

初始化:首先是全局變量,被初始化爲0,其次是static也被初始化爲0;

存放位置:存放於內存的靜態區。

作用域:開始於定義位置,終止於文件的結尾。 本文件之內在沒有定義此static全局變量之前,想使用的話需要加extern聲明。(最好在文件開始處就定義,避免使用extern)

特殊性:static還有隱藏的作用,本文件定義了static全局變量,其他文件即使加了extern,也不能使用他。

static嚴格的把作用於限制在從定義開始到文件結束的本文件內。

2.      對於局部static變量

初始化:初始化爲0.   (auto變量初始化的而是隨機值)

存放位置:靜態區

作用域:定義的函數內部使用,本文件內的其他函數也不能使用。

特殊性:不像auto局部變量會自動回收,static局部變量不會因爲函數結束運行而銷燬。

3.      對於static修飾的函數

這個static並不是指存放位置,而是起限制隱藏的作用,限制了只能此文件內使用,其他文件即使加了extern也不能使用。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章