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

2021-10-21 21:11:21 字數 1005 閱讀 1208

儲存類,就是儲存型別。用於描述變數空間開闢於記憶體中的什麼地方。

儲存類相關的關鍵字

相同之處

靜態區域性變數在儲存類方面(資料段)、生命週期方面和全域性變數一樣。

不同之處

作用域、鏈結屬性不同。靜態區域性變數作用域是**塊作用域(和自動區域性變數一樣)、鏈結屬性是無連線;全域性變數作用域是檔案作用域(和函式一樣)、鏈結屬性方面是外連線。

定義與宣告的區別

定義是編譯器建立了具體變數,並為這個變數分配了記憶體。宣告並沒有分配記憶體,只是告訴編譯器這個名字已經被分配記憶體了。

定義兼有宣告的作用,定義本身就是宣告。

「編譯器之內」

表示變數值的改變時**作用的結果。

「編譯器之外」

表示這個改變不是由**造成的,編譯器在編譯當前**時無法預知。

此關鍵字由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...