C++中的函数原型和函数定义
?
? ? ? ? 當(dāng)函數(shù)聲明和定義出現(xiàn)在主函數(shù)之后的,我們需要在函數(shù)之前(在函數(shù)調(diào)用以前)加函數(shù)原型聲明。
? ? ? ? 函數(shù)原型聲明,指明 函數(shù)名字,返回類型,有幾個參數(shù),這幾個參數(shù)是什么類型。不需要函數(shù)體。也不需要形式參數(shù)的名字(當(dāng)然,寫了形式參數(shù)的名字也不算錯)。分號作原型聲明 結(jié)束符
? ? ? ? 當(dāng)函數(shù)定義出現(xiàn)在主函數(shù)之前,就不需要函數(shù)原型聲明。
? ? ? ? 函數(shù)定義,必須有函數(shù)體。同時有 函數(shù)名字,返回類型,有形式參數(shù)的類型和名字。
? ? ? ? 二者主要區(qū)別是一個有函數(shù)體,描寫函數(shù)數(shù)據(jù)加工和返回的過程和細節(jié)。另一個只是簡單地說一下函數(shù)名字,返回類型,有幾個參數(shù)。
? ? ? ? 例如:
? ? ? ?
? ? ? ? ?函數(shù)原型類似函數(shù)定義時的函數(shù)頭,又稱函數(shù)聲明。函數(shù)聲明由函數(shù)返回類型、函數(shù)名和形參列表組成。這三個元素被稱為函數(shù)原型,函數(shù)原型描述了函數(shù)的接口。
? ? ? ? ?函數(shù)原型在c++中就是函數(shù)聲明,因為它定義了函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和返回值。定義是函數(shù)聲明加上對這個函數(shù)的實現(xiàn),即有花括號跟隨在后。
? ? ? 這個是聲明(原型):
int add(int, int);? ? ? ? 這個是定義:
int add(int a, int b) {return a + b; }? ? ? ?函數(shù)原型相當(dāng)于函數(shù)調(diào)用規(guī)則.比如:
函數(shù)int fun(int a,int b) { int c; c=a+b; return c } 的原型是int fun(int a,int b);或者可以寫成int fun(int,int);? ? ? 這樣可以告訴調(diào)用者如何調(diào)用這個函數(shù)以及返回值是什么.
?
? ? ? ? 為了能使函數(shù)在定義之前就能被調(diào)用,C++規(guī)定可以先說明函數(shù)原型,然后就可以調(diào)用函數(shù)。函數(shù)定義可放在程序后面。 由于函數(shù)原型是一條語句,因此函數(shù)原型必須以分號結(jié)束。函數(shù)原型由函數(shù)返回類型、函數(shù)名和參數(shù)表組成,它與函數(shù)定義的返回類型、函數(shù)名和參數(shù)表必須一致。函數(shù)原型必須包含參數(shù)的標識符(對函數(shù)聲明而言是可選的);說明:系統(tǒng)標準函數(shù)并沒有在包含文件中定義,而只是提供了函數(shù)原型。在調(diào)用函數(shù)時,系統(tǒng)會正確地調(diào)用庫函數(shù)。 注意:函數(shù)原型與函數(shù)定義必須一致,否則會引起連接錯誤。
總結(jié)
以上是生活随笔為你收集整理的C++中的函数原型和函数定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地图历史大反转!GISer如何查看历史影
- 下一篇: s3c2440移植MQTT