c語言中static修飾函數(shù)的方法及代碼
1、靜態(tài)函數(shù)只能在聲明它的文件中可見,其他文件不能引用該函數(shù)。
2、不同的文件可以使用相同名字的靜態(tài)函數(shù),互不影響。
3、使用static聲明的函數(shù)不能被另一個文件引用。
實(shí)例
/* file1.c */ #include <stdio.h> static void fun(void) { printf("hello from fun.\n"); } int main(void) { fun(); fun1(); return 0; } /* file2.c */ #include <stdio.h> static void fun1(void) { printf("hello from static fun1.\n"); } /* 輸出: error:file1.c:(.text+0x20):對‘fun1'未定義的引用 collect2: error: ld returned 1 exit status */
知識點(diǎn)擴(kuò)充:
在C語言中,static的字面意思很容易把我們導(dǎo)入歧途,其實(shí)它的作用有三條。
介紹它的第一條也是最重要的一條:隱藏。
當(dāng)我們同時編譯多個文件時,所有未加static前綴的全局變量和函數(shù)都具有全局可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個源文件,一個是a.c,另一個是main.c。
下面是a.c的內(nèi)容
char a = 'A'; // global variable void msg() { printf("Hello\n"); }
下面是main.c的內(nèi)容
int main(void) { extern char a; // extern variable must be declared before use printf("%c ", a); (void)msg(); return 0; }
程序的運(yùn)行結(jié)果是:
A Hello
到此這篇關(guān)于c語言中static修飾函數(shù)的方法及代碼的文章就介紹到這了,更多相關(guān)c語言中static如何修飾函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)
所謂的“復(fù)制控制”即通過這三個成員函數(shù)控制對象復(fù)制的過程,本文主要介紹了C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11Sublime Text 3 實(shí)現(xiàn)C語言代碼的編譯和運(yùn)行(示例講解)
下面小編就為大家?guī)硪黄猄ublime Text 3 實(shí)現(xiàn)C語言代碼的編譯和運(yùn)行(示例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),希望對大家有所幫助2023-03-03C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼
這篇文章主要介紹了C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-03-03