關鍵字static的作用 無法解析外部符號

2021-10-08 11:17:46 字數 1113 閱讀 6849

static 修飾區域性變數 改變了變數的生命週期-變長

void

test()

int main()

return0;

}

執行結果

static修飾區域性變數a:生命週期在整個函式

void

test()

int main()

return0;

}

執行結果

static修飾全域性變數,改變了全域性變數的作用域-變小了。

static修飾的全域性變數只能在自己所在的.c檔案中使用,不能在其他原始檔中使用。

extern int g_val;

//extern是宣告外部符號的

int main()

建立新原始檔定義全域性變數g_val

static int g_val = 2020;
執行結果:

error lnk2001: 無法解析的外部符號 _g_val

此時去掉變數g_val的修飾字static

int g_val = 2020;
static修飾函式時,與修飾全域性變數相同,static修飾的函式只能在本原始檔內使用,不能在其他原始檔使用。

extern int add

(int x, int y)

;int main()

建立新的原始檔,定義函式

static

add(int x, int y)

執行結果:error lnk2019: 無法解析的外部符號 _add,該符號在函式 _main 中被引用去掉static關鍵字

add

(int x, int y)

extern int add

(int x, int y)

;int main()

static關鍵字的作用

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種在c c 語言中使用,第三種只在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數...

關鍵字static的作用

關鍵字static的作用是什麼?這個簡單的問題很少有人能回答完全。在c語言中,關鍵字static有三個明顯的作用 1在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地...

關鍵字Static的作用

1 修飾變數 區域性靜態變數和全域性靜態變數,都存在記憶體的靜態區 區域性靜態變數,在函式體內定義,只能在函式內部使用,同乙個檔案中的其他函式不能用。即使函式執行結束,這個靜態變數的值也不會被銷毀,函式下次使用時仍能用到這個值。全域性靜態變數,在函式外部定義,作用域 從定義處開始,到所在檔案結尾處結...