static在c語言中的用法

2021-09-23 01:38:54 字數 877 閱讀 5573

在c語言中:

static用來修飾變數和函式

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

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

3.修飾函式-靜態函式

//**1

#includevoid test()

int main()

return 0;

}

//**2

#includevoid test()

int main()

}

對比**1和**2的效果理解static修飾區域性變數的意義

結論:static修飾區域性變數改變了變數的生命週期,讓靜態區域性出了作用域依然存在。

//**1

int g_val=2018;

int main()

//**2

static int g_val =2018;

int main()

**1正常,**2在編譯的過程中會出現鏈結性錯誤。

結論:乙個全域性變數被static修飾,使得這個變數只能在本原始檔中使用,不能在其他檔案中使用。

//**1

int add(int x,int y)

int main()

//**2

static int add(itn x,int y)

int main()

**1正常,**2在編譯中會出現連線性錯誤

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

在C語言中Static的用法

一 c程式儲存空間布局 c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心將此段初始...

static在C語言中的用法

在c語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。1 先來介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。...

c語言中static 用法

static在c裡面可以用來修飾變數,也可以用來修飾函式。先看用來修飾變數的時候。變數在c裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。int a int main a是全域性變數,b是棧變數,c是堆變數。static對全域性變數的修飾,可以認為是限制了只能是本...