c語言中static作用

2022-07-27 08:15:14 字數 840 閱讀 8451

(1)在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。

#include "

stdio.h

"int

main ()

return0;

}int fac (int

n )

我們通過這個例子可以看到static 作為靜態儲存在每次函式呼叫完畢並不釋放。

(2)在模組內(但在函式體外),乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地的全域性變數。

為了說明這個問題我們需要理解extern這個關鍵字。我們建立三個檔案 main.c   a.c   b.c 三個檔案。

ok!我們看到這個小例子可以執行,如果我們將add()函式宣告為 static int(int a, int b);  則會產生報錯問題。 這樣也就解釋了第三個問題。

(3)不能被模組外其它函式訪問。它是乙個本地的全域性變數。在模組內,乙個被宣告為靜態的函式只可被這一模組內的其它函式呼叫。那就是,這個函式被限制在宣告它的模組的本地範圍內使用。

c語言中static作用

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

C語言中static 作用

在c語言中static的作用如下 版本一 include char a a 普通全域性函式 void fun 普通全域性函式 include extern void fun 宣告外部函式為全域性函式 int main void 編譯 gcc c gcc a.c b.c 輸出 a hello worl...

C語言中static的作用

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