在寫程式的時候經常會遇到extern、static等儲存關鍵字,對它們的用法區別一直不是很清晰,所以結合c++ primer plus 和effictive c++的一些說明,重新複習了一遍,下面詳細說明一下這些關鍵字的定義與使用:
儲存說明符主要有:auto、register、static、extern、mutable五個。
auto:宣告乙個變數為自動變數,一般我們定義的分配在棧中的變數為自動變數,auto是預設狀態下就有的,一般很少見到,如:
int main()
register:在宣告中指示暫存器儲存型別。稱為暫存器變數,是另一種形式的自動變數,主要功能為使得編譯器通過cpu的暫存器而不是堆疊來處裡變數,因為cpu訪問暫存器中值的速度比訪問堆疊中的記憶體要快。
int main()
static:這個關鍵字很熟悉,表示變數為靜態變數。但是在不同地方宣告,變數作用於和鏈結性是不一樣的。
...
int g_nvalue = 10; //具有外部鏈結性,其他檔案可以訪問
int main()
void function(int n)
extern:表示引用宣告,就是宣告引用在其他地方定義的變數。通過這個關鍵字,不同檔案之間可以相互通訊。
#include using namespace std;
int g_nvalue = 10;
void update(int nv);
void local();
int main()
;const data temp=;
temp.count++; //允許修改
strcpy(temp.name,"helloname"); //不允許,錯誤
至此對於儲存型關鍵字解釋完畢,希望以後能夠分辨清楚
C語言 儲存類說明符
一 儲存類有關c語言的儲存類,推薦的參考資料 c primer plus,其中有一章專門講解這個 在理解c的儲存類之前,首先要搞懂的概念有 作用域 生存週期 連線屬性c中的儲存類說明符實際上是上述屬性的不同組合 作用域 乙個c變數的作用域可以是 塊作用域 在函式內部 塊中定義的變數 形參,稱為 區域...
C語言 關鍵字說明
1資料型別關鍵字 12個 1 char 宣告字元型變數或函式 2 double 宣告雙精度變數或函式 3 enum 宣告列舉型別 4 float 宣告浮點型變數或函式 5 int 宣告整型變數或函式 6 long 宣告長整型變數或函式 7 short 宣告短整型變數或函式 8 signed 宣告有符...
C語言之儲存類說明符
作用域 鏈結屬性 儲存時期 儲存型別內容請先參考博文 c語言有5中儲存型別修飾符 autoregisterstaticexterntypedef 下面分別介紹各說明符的用法 extern 表明識別符號具有外部鏈結屬性或者該變數在別處定義 想要理解extern的用法首先要理解c語言的宣告與定義的區別 ...