C語言中的屬性關鍵字

2021-08-16 22:55:32 字數 745 閱讀 4925

c語言裡的變數可以有自己的屬性,主要有auto,static,register。

auto即c語言中區域性變數的預設屬性,編譯器預設所有的區域性變數都是auto,在棧上分配空間,不能把全域性變數宣告為auto。

static關鍵字指明變數的靜態屬性,同時具有作用域限定符的意義。

其修飾的區域性變數儲存在程式靜態區,修飾的全域性變數作用域和函式作用域只是宣告的檔案中,別的檔案不能訪問。

register關鍵字指明將變數儲存於暫存器中,只是請求暫存器變數,不一定能請求成功。

如果乙個變數被register來修辭,就意味著,該變數會作為乙個暫存器變數,讓該變數的訪問速度達到最快。

使用register關鍵字時,注意:其

只能修飾區域性變數,不能修飾全域性變數,不能修飾函式。

register變數必須是cpu暫存器可以接受的值,這通常意味著register變數必須是乙個單個的值,並且長度應該小於或者等於整型的長度,且不能用取位址符號&對其求取位址。

給出如下**:

#include void f1()

void f2()

int main()

for(j = 0; j < 5; j++)

return 0;

}

得到結果為:1 1

1 11 1

2 34 5

從而說明static關鍵字修飾的區域性變數只會被初始化一次。雖然其作用域僅限於所在函式內部,但是其在整個程式的執行期一直存在。

c語言中關鍵字

static 修飾區域性變數,改變變數的生命週期和儲存空間,但是不改變作用域,仍然是乙個區域性變數,作用域僅限於該 修飾全域性變數,改變變數的作用域只能在當前檔案訪問,不能在其他檔案訪問 修飾函式,改變函式的作用域,函式只能在本檔案中被呼叫,不能在其他檔案被呼叫。extern 可以修飾變數和函式,表...

C語言中的關鍵字

register 作用 請求編譯器盡可能地將變數存在cpu記憶體暫存器中。而不是通過記憶體定址訪問的 方法,好處 省去了cpu處理訪問記憶體資料的時間。注意事項 1,register修飾變數的型別必須是cpu能夠接受,register變數 必須是乙個單個的值,並 且長度應該小於或者等於整型的長度,2...

C語言中的關鍵字!

今天總結一下c中的關鍵字 資料型別關鍵字 12個 1 char 宣告字元型變數或函式 2 double 宣告雙精度變數或函式 3 enum 宣告列舉型別 4 float 宣告浮點型變數或函式 5 int 宣告整型變數或函式 6 long 宣告長整型變數或函式 7 short 宣告短整型變數或函式 8...