C語言學習 三 儲存類

2021-10-06 17:24:30 字數 1563 閱讀 5795

儲存類定義c程式中變數/函式的範圍(可見性)和生命週期,這些說明符放置在它們所修飾的型別之前,c程式中可用的儲存類主要有四種:

auto

auto儲存類是所有區域性變數預設的儲存類

auto只能用在函式內,即auto只能修飾區域性變數。

register

register儲存類用於定義儲存在暫存器中而不是ram中的區域性變數,這意味著變數的最大尺寸等於暫存器的大小(通常是乙個詞),且不能對它應用一元的』&'運算子(因為沒有記憶體位置)

暫存器只用於需要快速訪問的變數,比如計數器,還應注意的是,定義『register』並不意味著變數將被儲存在暫存器中,它意味著變數可能儲存在暫存器中,這取決於硬體和實現的限制。

static

static儲存類指示編譯器在程式的生命週期內保持區域性變數的存在,而不需要在每次它進入和離開作用域時進行建立和銷毀,因此,使用static修飾區域性變數可以在函式呼叫之間保持區域性變數的值。

static修飾符也可以應用於全域性變數,當static修飾全域性變數時,會使變數的作用域限制在宣告它的檔案內。全域性宣告的乙個static變數或方法可以被任何函式和方法呼叫,只要這些方法出現在跟static變數或方法同乙個檔案中。

# include

/* 函式宣告 */

void

func1

(void);

static

int count=10;

intmain()

return0;

}void

func1

(void

)

count作為全域性變數可以在函式內使用,thingy使用static修飾後,不會再每次呼叫時重置。

extern儲存類

extern儲存類用於提供乙個全域性變數的引用,全域性變數對所有的程式檔案都是可見的,當使用extern時,對於無法初始化的變數,會把變數名指向乙個之前定義過的儲存位置。

當您有多個檔案且定義了乙個可以在其它檔案中使用的全域性變數或函式時,可以在其它檔案使用extern 來得到已定義的變數或函式的引用,extern是用來在另乙個檔案中宣告乙個全域性變數或函式。

extern修飾符通常用於當有兩個或多個檔案共享相同的全域性變數或函式的時候

第乙個檔案:main.c

#include

int count;

extern

void

write_extern()

;int

main()

第二個檔案: support.c

#include

extern

int count;

void

write_extern

(void

)

第二個檔案中的extern關鍵字用於宣告已經在第乙個檔案main.c中定義的count.現在,編譯這兩個檔案。

gcc main.c support.c

C語言學習 變數的儲存類

1.作用域 a.塊作用域 變數的作用範圍在一段 內,函式的形參和內部定義的變數都具有 塊作用域 b.檔案作用域 定義在所有函式之外的變數具有檔案作用域,作用範圍在整個檔案 c.函式原型作用域 在宣告函式時給出的形參具有函式原型作用域,它的作用範圍從宣告開始到宣告結束 d.函式作用域 只針對goto語...

C語言學習(三)

程式的模組化設計 程式設計練習 課外話 挫折是人生的常態,在我們遭遇疫情,不應一味放大痛苦讓其充塞心靈。我們要學會調適心弦,坦然面對,全國人民團結一致,就一定會戰勝疫情。祖國加油 武漢加油 你的答案 陣列程式的模組化設計 所謂陣列,是有序的元素序列。1 若將有限個型別相同的變數的集合命名,那麼這個名...

C語言學習 四種儲存類

auto 自動 儲存類 auto 儲存類是所有區域性變數預設的儲存類。存放到棧空間中,當函式執行完畢,棧空間就會被系統自動釋放。示例 include intmain return0 static 靜態 儲存類 created by dell on 2019.12.30.include 宣告乙個 fu...