1. 程式人生 > >C語言中關鍵字static、extern和auto的作用總結

C語言中關鍵字static、extern和auto的作用總結

1首先說一下auto自動儲存型別,一般我們很少在程式中顯示申明變數為auto型別。因為程式碼塊中的變數預設情況下就是這種型別,這種型別的變數存放於堆疊中,也就是說只有程式執行這些程式碼塊(一對{}之間的語句)時這種自動變數才會被建立,程式碼塊執行結束後自動變數便被釋放。

2、static關鍵字是我們在程式中經常使用的,static關鍵字的用法比較複雜,當用於不同上下文環境時,static關鍵詞具有不同的含義。

當static關鍵字用於函式定義或者是用於程式碼塊之外的變數申明時,static關鍵字是用來修改識別符號的連結屬性,將識別符號的連結屬性從external修改為internal,識別符號的儲存型別和作用域不會改變。申明為這種型別的變數和函式只能在原始檔內被訪問。

當static關鍵字用於程式碼塊內部的變數申明時,static關鍵字用來修改變數的儲存型別,將變數的儲存型別從自動變數修改為靜態變數,靜態變數和自動變數的區別在於靜態變數在程式碼塊執行前就已經建立,並且在整個程式執行期間一直存在並不會在程式碼塊執行後被釋放。雖然靜態變數一直存在單它不能被其他函式所應用。

     3、extern關鍵字的作用指定一個函式或者變數的連結屬性,指定extern連結屬性的識別符號可以訪問在其他任何位置定義的這個實體。