儲存型別和作用域、生存期限、鏈結型別有著千絲萬縷的聯絡。
儲存型別一共有四種 :
extern static 為兩個永久儲存型別
auto register 為兩個臨時儲存型別 (只有變數才有臨時生存期限)
預設的全域性變數和全域性函式為extern儲存型別
顯示的宣告全域性變數和全域性函式使其具有static儲存型別,它們只能被同乙個編譯單元所呼叫
區域性變數預設具有auto儲存型別,即便將其用static 或者 register來定義它們的作用域都是程式塊作用域,鏈結型別都是內連線,在用時建立在不用後銷毀,register 和 auto只能用來宣告區域性變數和區域性常量
全域性常量預設為static儲存型別
區域性符號常量為auto儲存型別
用register修飾的變數會被直接載入到cpu暫存器中,可以避免在暫存器和記憶體之間頻繁交換,提高程式執行效率,一般不需要程式設計師顯示地呼叫register說明符。
c++有6種作用域型別 檔案、函式、程式塊、函式原型、類、命名空間。
區域性變數具有程式塊作用域而不具有函式作用域
當發生遮蔽全域性變數的時候,可以用一元作用域解析運算子::來引用全域性變數 ep: ::count++;
在任何函式、類定義和名字空間外定義的識別符號具有檔案作用域,包括函式定義、型別定義本身。
C 儲存型別
儲存型別定義了變數或函式的作用範圍及生命週期。這些說明符也宣告了他們的修改方式的型別。有如下幾種儲存型別 auto register static extern mutable auto儲存型別是所有區域性變數的預設儲存型別。上面的例子中定義了兩個相同儲存型別的變數,auto 僅能運用於函式內的區域...
c高階c儲存型別
對程式中資料儲存空間的抽象。靜態儲存,一直都在,直到程式完蛋 動態,用就申請,搞完就甩了,例如函式形參那個悲慘的傢伙,用完後,就沒有然後了。auto 奧拓,不擺了 register 暗示編譯器要頻繁使用,快,最好放在cpu暫存器中,但也是暗示,給不給也不一定。全域性變數不能暗示。靜態 空鏈結 與動態...
c 變數儲存型別
extern 儲存型別 只宣告而不定義變數,變數的宣告只是告訴編輯器變數的名稱和資料型別 變數的定義是給變數分配儲存區域 優點就是可以在多個檔案裡面共享乙個全域性變數,static 儲存型別 static指的是靜態變數 又叫永續性變數 靜態變數分為兩種,第一種是區域性靜態變數在函式內定義的變數,該變...