关于C语言static定义函数类型的具体解释
生活随笔
收集整理的這篇文章主要介紹了
关于C语言static定义函数类型的具体解释
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內部函數和外部函數
函數一旦定義后就可被其它函數調用。 ? 但當一個源程序由多個源文件組成時, ? 在一個源文件中定義的函數能否被其它源文件中的函數調用呢?為此,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()
{
extern ? int ? f1(int ? i); ? /*外部函數說明,表示f1函
數在其它源文件中*/
……
}
F2.C ? (源文件二)
extern ? int ? f1(int ? i); ? /*外部函數定義*/
{
……
}
函數一旦定義后就可被其它函數調用。 ? 但當一個源程序由多個源文件組成時, ? 在一個源文件中定義的函數能否被其它源文件中的函數調用呢?為此,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()
{
extern ? int ? f1(int ? i); ? /*外部函數說明,表示f1函
數在其它源文件中*/
……
}
F2.C ? (源文件二)
extern ? int ? f1(int ? i); ? /*外部函數定義*/
{
……
}
總結
以上是生活随笔為你收集整理的关于C语言static定义函数类型的具体解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构体中的自然对界法则
- 下一篇: T1串口波特率的计算方法