欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言static修飾函數(shù)詳細解析

 更新時間:2013年08月13日 10:23:31   作者:  
以下是對C語言中的static修飾函數(shù)進行了詳細的分析介紹,需要的朋友可以過來參考下

在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。
介紹它的第一條也是最重要的一條:隱藏。
當我們同時編譯多個文件時,所有未加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;
}

程序的運行結(jié)果是:
A Hello

你可能會問:為什么在a.c中定義的全局變量a和函數(shù)msg能在main.c中使用?前面說過,所有未加static前綴的全局變量和函數(shù)都具有全局可見性,其它的源文件也能訪問。此例中,a是全局變量,msg是函數(shù),并且都沒有加static前綴,因此對于另外的源文件main.c是可見的。

如果加了static,就會對其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的文件中定義同名函數(shù)和同名變量,而不必擔心命名沖突。Static可以用作函數(shù)和變量的前綴,對于函數(shù)來講,static的作用僅限于隱藏

相關文章

  • C語言實現(xiàn)全排列算法模板的方法

    C語言實現(xiàn)全排列算法模板的方法

    這篇文章主要介紹了C語言實現(xiàn)全排列算法模板的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C++的頭文件和實現(xiàn)文件詳解

    C++的頭文件和實現(xiàn)文件詳解

    這篇文章主要介紹了C++的頭文件和實現(xiàn)文件詳解的相關資料,需要的朋友可以參考下
    2015-01-01
  • C語言對堆排序一個算法思路和實現(xiàn)代碼

    C語言對堆排序一個算法思路和實現(xiàn)代碼

    這篇文章主要介紹了C語言對堆排序一個算法思路和實現(xiàn)代碼,堆排序是一種樹形選擇排序,是對直接選擇排序的有效改進,需要的朋友可以參考下
    2014-06-06
  • C語言進階數(shù)據(jù)的存儲機制完整版

    C語言進階數(shù)據(jù)的存儲機制完整版

    這篇文章主要為大家完整的介紹了C語言進階數(shù)據(jù)的存儲機制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-02-02
  • C語言菜鳥基礎教程之條件判斷

    C語言菜鳥基礎教程之條件判斷

    本文給大家簡單介紹了下C語言中的條件判斷語句的語法和用法示例,非常簡潔實用,有需要的小伙伴可以參考下
    2017-10-10
  • C語言實現(xiàn)大頂堆的示例代碼

    C語言實現(xiàn)大頂堆的示例代碼

    最大堆,又稱大根堆(大頂堆)是指根結(jié)點(亦稱為堆頂)的關鍵字是堆里所有結(jié)點關鍵字中最大者,屬于二叉堆的兩種形式之一。本文將用C語言實現(xiàn)大頂堆,感興趣的可以了解一下
    2022-07-07
  • 在C++中加載TorchScript模型的方法

    在C++中加載TorchScript模型的方法

    這篇文章主要介紹了在C++中加載TorchScript模型的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    對于所有直接操作內(nèi)存的程序員來說,數(shù)據(jù)對齊都是很重要的問題.數(shù)據(jù)對齊對你的程序的表現(xiàn)甚至能否正常運行都會產(chǎn)生影響
    2013-05-05
  • C++中線程池ThreadPool源碼解析

    C++中線程池ThreadPool源碼解析

    線程池(threadpool)作為五大池之一(內(nèi)存池、連接池、線程池、進程池、協(xié)程池),線程池的應用非常廣泛,不管事客戶端程序還是后臺服務端,都是提高業(yè)務處理能力的必備模塊
    2022-09-09
  • 詳解C語言結(jié)構體的定義和使用

    詳解C語言結(jié)構體的定義和使用

    這篇文章主要為大家介紹了C語言結(jié)構體的定義和使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論