程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話static潤飾函數具體解析

C說話static潤飾函數具體解析

編輯:關於C++

C說話static潤飾函數具體解析。本站提示廣大學習愛好者:(C說話static潤飾函數具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話static潤飾函數具體解析正文


在C說話中,static的字面意思很輕易把我們導入邪路,其實它的感化有三條。
引見它的第一條也是最主要的一條:隱蔽。
當我們同時編譯多個文件時,一切未加static前綴的全局變量和函數都具有全局可見性。為懂得這句話,我舉例來講明。我們要同時編譯兩個源文件,一個是a.c,另外一個是main.c。

上面是a.c的內容

char a = 'A'; // global variable
void msg()
{
    printf("Hello\n");
}

上面是main.c的內容

int main(void)
{   
    extern char a;    // extern variable must be declared before use
    printf("%c ", a);
    (void)msg();
    return 0;
}

法式的運轉成果是:
A Hello

你能夠會問:為何在a.c中界說的全局變量a和函數msg能在main.c中應用?後面說過,一切未加static前綴的全局變量和函數都具有全局可見性,其它的源文件也能拜訪。此例中,a是全局變量,msg是函數,而且都沒有加static前綴,是以關於別的的源文件main.c是可見的。

假如加了static,就會對其它源文件隱蔽。例如在a和msg的界說前加上static,main.c就看不到它們了。應用這一特征可以在分歧的文件中界說同名函數和同名變量,而不用擔憂定名抵觸。Static可以用作函數和變量的前綴,關於函數來說,static的感化僅限於隱蔽

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved