C 儲存型別

2021-08-09 04:52:42 字數 659 閱讀 8062

儲存型別和作用域、生存期限、鏈結型別有著千絲萬縷的聯絡。

儲存型別一共有四種 :

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指的是靜態變數 又叫永續性變數 靜態變數分為兩種,第一種是區域性靜態變數在函式內定義的變數,該變...