函數原型的宣告形如
以函數的定義介紹過的指數函數為例
#include <stdio.h> int exponent(int, int); int main(void) { int i; for (i = 0; i <= 10; i++) { printf("%2d%5d\n", i, exponent(2, i)); } return 0; } int exponent(int a, int x) { int result = 1; while (x > 0) { result *= a; x--; } return result; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:exponent2.c 功能:測試指數函數,從 2 的 0 次方列印到 10 次方 作者:張凱慶 時間:西元2010年4月 */
第 3 行即為函數原型的宣告
int exponent(int, int);
宣告函數原型僅需提供參數的型態,也可以同時提供參數名稱,由於編譯器會忽略任何在函數原型宣告所提供的參數名稱,因此函數原型的參數名稱可以與函數定義的參數名稱不相同,這裡我們建議可以不在函數原型中提供參數名稱。
編譯然後執行這個程式,結果如下
我們可以看到 exponent2.c 與 exponent1.c 的執行結果相同。
另外一個常用到函數原型宣告的地方,就是發展大型程式時,將介面與實作分開的軟體工程概念。這是說,把函數宣告放在自訂的標頭檔中,這就是介面,然後函式定義放到另一個檔案中,那就是實作,最後另寫一個含 main() 的可執行程式。
沒有留言:
張貼留言