在c語言中static的作用如下
版本一
#include
char a = 'a';//普通全域性函式
void fun()//普通全域性函式
#include
extern
void fun();//宣告外部函式為全域性函式
int main(void)
編譯:gcc *.c (gcc a.c b.c)輸出:
a hello world
#include
static
char a = 'a';//靜態全域性變數,對外檔案隱藏
static
void fun()//靜態全域性函式,對外檔案隱藏
編譯:gcc *.c編譯報錯:
/tmp/ccp9gtxs.o:在函式『main』中:
b.c:(.text+0x14):對『a』未定義的引用
b.c:(.text+0x2d):對『fun』未定義的引用
collect2: error: ld returned 1 exit status
c++類中static成員宣告:
為了防止父類的影響,可以在子類定義乙個與父類相同的靜態變數,以遮蔽父類的影響。這裡有一點需要注意:我們說靜態成員為父類和子類共享,但我們又重新定義了靜態成員,這不會引起錯誤。編譯器採用了一種巧妙的手法:name-mangling用以生成唯一的標識。
dbhelper * dbhelper::instance = null;
dbhelper * dbhelper::getinstance()
return instance;
}
版本二
版本三
在c++中static關鍵字的作用除了c中的還有
在類中,static可以用來修飾靜態資料成員和靜態成員方法
靜態成員函式
補充
c語言中普通全域性變數編譯器會給個預設值
#include
int num;//預設值0
double dnum;
char ch;
int main(void)
c語言中static作用
本文根據多篇網路部落格整合而成一.c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心...
c語言中static作用
1 在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。include stdio.h int main return0 int fac int n 我們通過這個例子可以看到static 作為靜態儲存在每次函式呼叫完畢並不釋放。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被...
C語言中static的作用
在c語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。1 第乙個作用 隱藏。當我們同時編譯多個檔案時,所有未加static字首的 全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。下面是a.c的內容 i...