關於C語言static定義函式型別的具體解釋

2021-06-25 09:00:27 字數 727 閱讀 7619

內部函式和外部函式 

函式一旦定義後就可被其它函式呼叫。   但當乙個源程式由多個原始檔組成時,   在乙個原始檔中定義的函式能否被其它原始檔中的函式呼叫呢?為此,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的好處是 不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。其他檔案中可以定義相同名字的函式,不會發生衝突 靜態函式不能被工程內其他檔案所...