C語言的儲存類 生命週期 作用域 鏈結屬性

2021-10-02 05:38:30 字數 810 閱讀 3191

【關鍵字:auto register extern static】

一、儲存類:變數的儲存型別。

1、記憶體被分成:棧 堆 資料段 bss段 和text段等不同管理方法的記憶體段。

區域性變數被分配與棧中。他的儲存類就是棧。

2、被顯式初始化為非0的全域性變數分配在data段。那麼該全域性變數的

儲存類就是data段。

3、顯式初始化為0和沒有顯式初始化(預設為0)的全域性變數以及靜態

變數分配在bss段。則該變數的儲存類就是bss段。

eg: int a1 = 2; //資料段

int a2; //bss段

int a3 = 0; //bss段

int main()

二、作用域:描述這個比變數起作用的**範圍。

1、乙個變數的作用域說白了就是:這個變數定義所在的大括號{}範圍內

從變數定義開始往後的部分。

2、全域性變數:是整個檔案為其作用域。

3、區域性變數:此函式內部有效。

三、生命週期:描述這個變數起作用,有效的時間段。

1、程式從源**到最終的可執行程式,經歷了以下過程:

預編譯-->編譯-->彙編-->鏈結。

2、編譯的目的就是:把源**翻譯成.o的目標檔案。目標

檔案中有好多符號和**段,資料段,bss段等分段。

符號就是程式設計中的變數名,函式名等。執行時,變數

名,函式名就會和相對於的記憶體聯絡起來。靠符號來鏈結。

儲存類 作用域 生命週期 鏈結屬性

補充 1 儲存類就是儲存型別,也就是描述c語言變數在何種地方儲存。2 記憶體有多種管理方法 棧 堆 資料段 bss段 text段 段 乙個變數的儲存類屬性就是描述這個變數儲存在何種記憶體段中。1 作用域是描述這個變數起作用的 範圍。2 基本來說,c語言變數的作用域規則是 塊作用域。1 生命週期是描述...

儲存類 作用域 生命週期 鏈結屬性

含義 描述變數空間開闢於記憶體中什麼地方,記憶體被分為棧 堆 資料段 bss段 text段等管理方法的記憶體段,變數空間開闢於這些段中。如區域性變數 棧 被顯示初始化為非0的全域性變數和被初始化為非0的static區域性變數 data段 顯示初始化為0和沒有顯示初始化的全域性變數 bss段 int ...

儲存類 作用域 生命週期 鏈結屬性

儲存類,就是儲存型別。用於描述變數空間開闢於記憶體中的什麼地方。儲存類相關的關鍵字 相同之處 靜態區域性變數在儲存類方面 資料段 生命週期方面和全域性變數一樣。不同之處 作用域 鏈結屬性不同。靜態區域性變數作用域是 塊作用域 和自動區域性變數一樣 鏈結屬性是無連線 全域性變數作用域是檔案作用域 和函...