c語言學習筆記 關鍵字

2021-10-22 06:23:06 字數 711 閱讀 7034

auto

定義變數為區域性變數,在函式中定義變數時預設為auto

static

定義靜態區域性變數,使用static修飾的變數將被放置到資料段,為空鏈結

register

告知編譯器將盡可能變數存放到暫存器中,但該關鍵字只是乙個請求,並不能保證執行,linux中就有乙個變數被此關鍵字修飾-gd,被此關鍵字修飾的變數不一定能被放進,例如乙個double型別的變數就會因為超量而無法放到暫存器中

extern

外部宣告,由於編譯器在編譯時,是按檔案來編譯的,在編譯乙個檔案的過程中是看不到其他檔案的,所以需要在前面加入宣告,告知編譯器此函式/變數 已經在其他檔案編譯了

類似於彙編中的export

typedef

儲存類關鍵字,目的是定義使用者自定義型別,提高**可讀性和易用性

restrict

該關鍵字是c99中新增的關鍵字,該關鍵字僅在修飾指標時有效,作用是告知編譯器該指標僅在此處被呼叫,可以放心被優化

volatile

該關鍵字的作用是告知編譯器此變數在其他地方可能被更改,不要對此變數進行優化,每次使用該變數都要重新從暫存器中讀值,

一般情況,會改在編譯器未知的情況下改變變數的值的情況有

中斷中會對此程式進行修改

硬體會變數值進行修改

會在其他檔案中對變數進行修改

所以在定義變數時要開發者自行判斷該變數的使用,以保證不會出錯和程式效率

C語言學習筆記 type關鍵字

typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 使用typedef定義新型別的方法 在傳統的變數宣告表示式裡用 新的 型別名替換變數名,然後把關鍵字typedef加在該語句的開頭即可。例 in...

C語言學習筆記 void關鍵字

void 修飾函式返回值和引數 為了表示 無 如果函式沒有返回值,那麼應該將其宣告為 void,同樣的,如果函式沒有引數,也應該宣告其引數為 void f 函式任意引數,返回值預設 f 函式無參無返回值 void f void c 語言沒有定義 void 究意是多大記憶體的別名,沒有 void 標尺...

C語言學習之關鍵字

在我們講解關鍵字之前,我們先來了解一下宣告跟定義的區別 定義 所謂定義就是 編譯器 建立了乙個物件,並為這一物件分配了記憶體並且給它取了乙個名字,這個名字就是我們經常所說的變數名或者物件名,乙個變數或者物件在一定區域內 比如函式內 全域性等 只能定義一次 宣告 有兩重含義 1 告訴編譯器,這個名字已...