C 學習之路 函式部分(函式原型問題)

2021-07-30 20:21:48 字數 635 閱讀 6369

翻譯:c++primer.plus(第三版)

例: .#include

void cheers(int);

double cube(double x);

int main()

double cube(double x)

1.為什麼需要函式原型?

原型描述了函式到編譯器的介面,也就是說,它將函式返回值的型別(如果有的話)以及引數的型別和數量告訴編譯器。例如上述例子中的函式呼叫:

double volume = cube(side);

首先,原型告訴編譯器,cube()有乙個double引數。如果程式沒有提供這樣的引數,原型將讓編譯器能夠捕獲這種錯誤。其次,cube()函式完成計算後,將把返回值放置在指定的位置——可能是cpu暫存器,也可能是記憶體中。然後呼叫函式(這裡為main())將從這個位置取得返回值。由於原型指出了cube()的型別為double,因此編譯器知道應檢索多少個位元組以及如何解釋它們。如果沒有這些資訊,編譯器將只能進行猜測,而編譯器是不會這樣做的。

2.原型的功能

(1)編譯器正確處理函式返回值;

(2)編譯器檢查使用的引數數目是否正確;

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

C 函式原型

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

C 函式內部定義函式原型?

在乙個函式內部這樣寫有意義嗎?首先說一下函式是不能巢狀定義的。其次這裡不是定義,只是個函式宣告。函式宣告的作用不用再問我了吧,c c 語法規定,定義在當前語句之後函式,是不能直接使用的,因為函式的查詢範圍是從第一句找到當行所在行,如果沒出現就會丟擲未解析符號的錯誤 你可以寫在全域性裡,也可以只寫在當...

C 函式原型,及內聯函式

1 一般型別 返回值 函式名 參數列 2 函式原型的參數列中可不包引數的名字,而只包含它們的型別 int add int a,int b int add add 3 函式定義由函式說明和函式體兩個部分構成1.作用 消除系統開銷,提高執行速度 2.內聯函式在第一次被呼叫之前必須進行完整的定義,否則編譯...