天天看點

C語言中的static extern

轉自部落格

http://blog.chinaunix.net/uid-2512245-id-3549886.html

    當一個源程式由多個源檔案組成時,根據函數能否被其它源檔案中的函數調用,将函數分為内部函數和外部函數。

1 内部函數(又稱靜态函數)

    如果在一個源檔案中定義的函數,隻能被本檔案中的函數調用,而不能被同一程式其它檔案中的函數調用,這種函數稱為内部函數。

    定義一個内部函數,隻需在函數類型前再加一個“static”關鍵字即可:

    static  函數類型  函數名(函數參數表)

    關鍵字“static”,譯成中文就是“靜态的”,是以内部函數又稱靜态函數。但此處“static”的含義不是指存儲方式,而是指對函數的作用域僅局限于本檔案。

使用内部函數的好處是:不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它檔案中的函數同名,因為同名也沒有關系。

2 外部函數

    外部函數的定義:在定義函數時,如果沒有加關鍵字“static”,或冠以關鍵字“extern”,表示此函數是外部函數,也就是我們最常用的函數形式。

    extern它可以用作一種格式上的提示,表明函數的定義可能在另一個源檔案中,extern int f();與int f();本質上是一樣的。