1. 程式人生 > >C++ 函式原型

C++ 函式原型

一,函式原型

函式原型(函式宣告)就是告訴編譯器這個函式是存在的,讓編譯器知道這個函式的相關資訊。函式原型不要求提供形參名,有型別列表就可以了。避免使用函式原型的方法是,在首次使用函式定義之前定義它,但這並不是總可行的。我們一般把函式宣告放在主函式的前面,因為min()函式是應用程式的入口。函式宣告是告訴編譯器這個函式存在,函式定義是表示該函式如何去做。

二,為什麼需要函式原型?

函式原型描述了函式到編譯器的介面,它將函式返回值的型別以及引數的型別和數量告訴編譯器。例如:看函式原型如何影響下面的函式呼叫。

double cube(double x);

int main()
{
    double val = cube(5.0);
    return 0;
}

double cube(double x){
    return x * x;
}

首先原型告訴編譯器,cube()有一個double引數。如果程式沒有提供這樣的引數,原型將讓編譯器捕獲這樣的錯誤。其次,函式呼叫結束後,將把返回值放到指定的位置。然後呼叫函式將從這個位置獲取返回值。由於函式原型指出了函式的返回值是double型別,因此編譯器知道應檢索多少個位元組以及如何解釋他們。如果沒有這些資訊,編譯器只能進行猜測,但是編譯器並不會這麼做。

三,函式原型的功能

函式原型可以幫助編譯器完成許多的工作,同時,它也可以幫助程式極大的降低程式出錯的機率。原型可以確保以下幾點:

1,編譯器正確處理函式返回值。

2,編譯器檢索使用的引數數目是否正確。

3,編譯器檢查使用的引數型別是否正確,如果不正確轉換為正確的型別。

int x = 5;
double val = cube(x);

首先看上面的函式呼叫,程式將一個int型的值5傳遞給cube()。編譯器注意到,cube()原型指定一個double型別的引數,因此會將5轉換為5.0。