轉自部落格
http://blog.chinaunix.net/uid-2512245-id-3549886.html
當一個源程式由多個源檔案組成時,根據函數能否被其它源檔案中的函數調用,将函數分為内部函數和外部函數。
1 内部函數(又稱靜态函數)
如果在一個源檔案中定義的函數,隻能被本檔案中的函數調用,而不能被同一程式其它檔案中的函數調用,這種函數稱為内部函數。
定義一個内部函數,隻需在函數類型前再加一個“static”關鍵字即可:
static 函數類型 函數名(函數參數表)
關鍵字“static”,譯成中文就是“靜态的”,是以内部函數又稱靜态函數。但此處“static”的含義不是指存儲方式,而是指對函數的作用域僅局限于本檔案。
使用内部函數的好處是:不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它檔案中的函數同名,因為同名也沒有關系。
2 外部函數
外部函數的定義:在定義函數時,如果沒有加關鍵字“static”,或冠以關鍵字“extern”,表示此函數是外部函數,也就是我們最常用的函數形式。
extern它可以用作一種格式上的提示,表明函數的定義可能在另一個源檔案中,extern int f();與int f();本質上是一樣的。