儲存類,就是儲存型別。用於描述變數空間開闢於記憶體中的什麼地方。
儲存類相關的關鍵字
相同之處:靜態區域性變數在儲存類方面(資料段)、生命週期方面和全域性變數一樣。
不同之處:
作用域、鏈結屬性不同。靜態區域性變數作用域是**塊作用域(和自動區域性變數一樣)、鏈結屬性是無連線;全域性變數作用域是檔案作用域(和函式一樣)、鏈結屬性方面是外連線。
定義與宣告的區別定義是編譯器建立了具體變數,並為這個變數分配了記憶體。宣告並沒有分配記憶體,只是告訴編譯器這個名字已經被分配記憶體了。
定義兼有宣告的作用,定義本身就是宣告。
「編譯器之內」表示變數值的改變時**作用的結果。
「編譯器之外」
表示這個改變不是由**造成的,編譯器在編譯當前**時無法預知。
此關鍵字由c99所支援,可以利用「-std = c99」來開啟gcc對c99的支援。區域性變數的作用域時**塊作用域,可以訪問的範圍為定義該區域性變數開始到**塊結束。
檔案作用域是指全域性的訪問許可權,函式和全域性變數的作用域為.c檔案中該函式或全域性變數的定義位置開始到檔案結束。
變數的掩蔽規則如果想要在定義前訪問時怎麼辦?宣告如果兩個同名變數作用域有交疊時,c語言規定作用域小的變數會掩蔽掉作用域大的變數。
#include
extern var;
int var =10;
intmain()
儲存類 作用域 生命週期 鏈結屬性
補充 1 儲存類就是儲存型別,也就是描述c語言變數在何種地方儲存。2 記憶體有多種管理方法 棧 堆 資料段 bss段 text段 段 乙個變數的儲存類屬性就是描述這個變數儲存在何種記憶體段中。1 作用域是描述這個變數起作用的 範圍。2 基本來說,c語言變數的作用域規則是 塊作用域。1 生命週期是描述...
儲存類 作用域 生命週期 鏈結屬性
含義 描述變數空間開闢於記憶體中什麼地方,記憶體被分為棧 堆 資料段 bss段 text段等管理方法的記憶體段,變數空間開闢於這些段中。如區域性變數 棧 被顯示初始化為非0的全域性變數和被初始化為非0的static區域性變數 data段 顯示初始化為0和沒有顯示初始化的全域性變數 bss段 int ...
C語言的儲存類 生命週期 作用域 鏈結屬性
關鍵字 auto register extern static 一 儲存類 變數的儲存型別。1 記憶體被分成 棧 堆 資料段 bss段 和text段等不同管理方法的記憶體段。區域性變數被分配與棧中。他的儲存類就是棧。2 被顯式初始化為非0的全域性變數分配在data段。那麼該全域性變數的 儲存類就是d...