C語言中的關鍵字static有3個用法,它表示靜態變數或函數,被宣告爲靜態的變數,存在在靜態/全域性變數區。
它的作用主要是:通過static限定外部物件,可以達到隱藏外部物件的目的。
1,函數中的靜態區域性變數。
函數中的靜態區域性變數在函數呼叫過程中,它一直存在,無論函數是否被呼叫,它只可以被賦值一次,再次呼叫該函
數時,裏面的區域性變數不會進行初始化。
2,檔案(模組)中的全域性靜態變數。
檔案(模組)中的全域性靜態變數只能被該檔案中的其他函數使用,無法被其他檔案(模組)中的函數使用。
3,檔案(模組)中的靜態函數。
一個被宣告靜態的函數,只能被該檔案(模組)中的其他函數呼叫,無法被檔案(模組)外的函數呼叫。
register告訴編譯器使用暫存器儲存變數,但這與底層有關,試圖告訴編譯器,該變數會經常使用,宣告過多的register變數也是可以的。
inline修飾的函數成爲行內函式,在編譯期間,編譯器將宣告爲inline的函數展開。這樣做的好處是,避免跳轉,較少開銷,帶來的副作用是呼叫過多的inline函數,會使得生成的可執行程式非差大。
volatile的意思是易變化的,該關鍵字告訴編譯器,被valatile修飾的變數可能被未知因素修改,在存取該變數時,不進行優化,因此每次在存取該變數時,均從記憶體中存取該變數。