關鍵字static , volatile ,const 解析
阿新 • • 發佈:2018-11-12
static:
1.修飾全域性變數,修飾的變數生命週期為全執行階段,可以在不同的模組呼叫該變數;
靜態全域性變數有以下特點:
該變數在全域性資料區分配記憶體;
未經初始化的靜態全域性變數會被程式自動初始化為0(在函式體內宣告的自動變數的值是隨機的,除非它被顯式初始化,而在函式體外被宣告的自動變數也會被初始化為0);
靜態全域性變數在宣告它的整個檔案都是可見的,而在檔案之外是不可見的;
一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料(即使是函式內部的靜態區域性變數)也存放在全域性資料區。全域性資料區的資料並不會因為函式的退出而釋放空間。
全域性變數和全域性靜態變數的區別:
1)全域性變數是不顯式用static修飾的全域性變數,全域性變數預設是有外部連結性的,作用域是整個工程,在一個檔案內定義的全域性變數,在另一個檔案中,通過extern 全域性變數名的宣告,就可以使用全域性變數。
2)全域性靜態變數是顯式用static修飾的全域性變數,作用域是宣告此變數所在的檔案,其他的檔案即使用extern宣告也不能使用。
區域性靜態變數:對在函式體內部的變數進行修飾 ,則使該變數執行時儲存在資料段,不單獨受該函式的控制,從來被整個檔案內的程式控制;
修飾函式
在函式的返回型別前加上static