內部函式和外部函式
函式一旦定義後就可被其它函式呼叫。 但當乙個源程式由多個原始檔組成時, 在乙個原始檔中定義的函式能否被其它原始檔中的函式呼叫呢?為此,c語言又把函式分為兩類:
一、內部函式
如果在乙個原始檔中定義的函式只能被本檔案中的函式呼叫,而不能被同一源程式其它檔案中的函式呼叫, 這種函式稱為內部函
數。定義內部函式的一般形式是: static 型別說明符 函式名(形參表)
例如:
static int f(int a,int b) 內部函式也稱為靜態函式。但此處靜態static 的含義已不是指儲存方式,而是指對函式的呼叫範圍只侷限於本檔案。 因此在不同的原始檔中定義同名的靜態函式不會引起混淆。
二、外部函式
外部函式在整個源程式中都有效,其定義的一般形式為: extern 型別說明符 函式名(形參表)
例如:
extern int f(int a,int b)
如在函式定義中沒有說明extern或static則隱含為extern。
在乙個原始檔的函式中呼叫其它原始檔中定義的外部函式時,應 用extern說明被調函式為外部函式。例如:
f1.c (原始檔一)
main()
f2.c (原始檔二)
extern int f1(int i); /*外部函式定義*/
C語言 函式定義時前加static 作用
函式中加 static 的含義不是指儲存方式,而是指對函式的作用域僅侷限於本檔案。使用內部函式的好處是 不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。根本原因是c語言中同乙個工程中不能有同名函式。定義靜態函式的好處 其他檔案中可以定義相同名字的函...
C語言 static修飾函式
在c語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。下面是a...
C語言中static函式
1.含義 定義為static的函式,作用域為本檔案,它只能在定義該函式的原始檔中使用。2.好處 使用static的好處是 不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。其他檔案中可以定義相同名字的函式,不會發生衝突 靜態函式不能被工程內其他檔案所...