C語言static關鍵字怎麼用

2021-10-16 09:39:28 字數 1303 閱讀 3562

static關鍵字可以修飾:

1. 修飾區域性變數-靜態區域性變數

2. 修飾全域性變數-靜態全域性變數

3. 修飾函式-靜態函式

1.修飾區域性變數:

static修飾區域性變數改變了變數的生命週期,讓靜態區域性變數出了作用域依然存在,到程式結束,

生命週期才結束。

2.修飾全域性變數:

乙個全域性變數被static修飾,使得這個全域性變數只能在本原始檔內使用,

不能在其他原始檔內使用。

舉例:test1.c

int sum =

122;

test2.c

#include

extern

int sum;

void

main()

可以正常執行

加乙個static修飾符後

test1.c

static

int sum =

122;

test2.c

#include

extern

int sum;

void

main()

執行報錯,提示找不到sum這個變數,也就是說在編譯的時候會出現連線性錯誤。

3.修飾函式

乙個函式被static修飾,使得這個函式只能在本原始檔內使用,不能在其他原始檔內使用。

舉例:add.c

int

add(

int a,

int b)

test.c

#include

extern

intadd

(int

,int);

void

main()

執行成功

加上static修飾符後

add.c

static

intadd

(int a,

int b)

test.c

#include

extern

intadd

(int

,int);

void

main()

執行報錯,提示找不到add函式,也就是說編譯的時候會出現連線性錯誤。

C語言關鍵字Static

c語言中static的語義 1.static變數 1 區域性 a.靜態區域性變數在函式內定義,生存期為整個源程式,但作用域與自動變數相同,只能在定義該變數的函式內使用。退出該函式後,儘管該變數還繼續存在,但不能使用它。b.對基本型別的靜態區域性變數若在說明時未賦以初值,則系統自動賦予0值。而對自動變...

c語言static關鍵字

以前一直覺得static關鍵字僅僅是定義乙個靜態的變數,今天在看書的時候發現一切沒那麼簡單,遂決定記錄下來。1.static關鍵字指明變數是乙個靜態變數,即static修飾的區域性變數並不是分配在棧中,而是分配在程式的靜態區中,所以在函式呼叫後其記憶體並不會被釋放。這裡需要注意乙個點,也就是說並不是...

C語言 關鍵字static

一 修飾區域性變數 靜態區域性變數 修飾前 include void test intmain return0 修飾後 include void test intmain return0 結論 static修飾區域性變數改變了變數的生命週期,讓靜態區域性變數出了作用域依然存在,到程式結束,生命週期才...