C 語言專欄 為什麼需要函式原型?

2021-08-22 08:04:19 字數 681 閱讀 5283

為什麼需要函式原型?

在ansi c新標準中,允許採用函式原型方式對被呼叫函式進行說明,其一般格式如下:

返回值型別

函式名(參數列)

為什麼需要函式原型?

函式原型能告訴編譯器此函式有多少個引數,每個引數分別是什麼型別,函式的返回型別又是什麼。當函式被呼叫時,編譯器可以根據這些資訊判斷實參個數是否正確,型別是否正確等。函式原型能讓編譯器及時地發現函式呼叫時存在的語法錯誤。

若有乙個函式原型如下:

int getitem(int *, char k);

當 getitem() 函式被呼叫是,編譯器就會檢查呼叫函式的實參是不是兩個?第乙個實參是不是乙個指標或乙個位址?若你將乙個字串常量作為第二個實參,編譯器一定會提示傳遞的引數與原型中的型別不匹配.

總而言之,函式提供了一種判斷函式是否被正確呼叫的語法檢查機制。

什麼時候使用函式原型?

當被呼叫函式的定義出現在主呼叫函式之後時,應在呼叫語句之前給出函式原型。如果在被呼叫之前,沒有給出函式原型,編譯器將會把第一次遇到的該函式定義作為函式的宣告,並將函式返回值型別預設為 int 型。那麼當函式返回值型別為整型時,就無須給出原型了呢?那你錯了,這種偷懶的方法將使得編譯器無法對實參和形參進行匹配檢查。若呼叫函式時引數使用不當,編譯器也不會再給你善意的提醒,你也許會得意於程式的安全通過,但你很可能將面臨型別不匹配所帶來的系統崩潰的危險。

C 語言專欄 為什麼需要函式原型?

為什麼需要函式原型?在ansi c新標準中,允許採用函式原型方式對被呼叫函式進行說明,其一般格式如下 返回值型別 函式名 參數列 為什麼需要函式原型?函式原型能告訴編譯器此函式有多少個引數,每個引數分別是什麼型別,函式的返回型別又是什麼。當函式被呼叫時,編譯器可以根據這些資訊判斷實參個數是否正確,型...

C 語言專欄 為什麼需要函式原型?

為什麼需要函式原型?在ansi c新標準中,允許採用函式原型方式對被呼叫函式進行說明,其一般格式如下 返回值型別 函式名 參數列 為什麼需要函式原型?函式原型能告訴編譯器此函式有多少個引數,每個引數分別是什麼型別,函式的返回型別又是什麼。當函式被呼叫時,編譯器可以根據這些資訊判斷實參個數是否正確,型...

為什麼需要函式原型?

原型描述了函式到編譯器的介面,也就是說,他將函式返回值的型別 如果有的話 以及引數的型別和數量告訴編譯器 eg double cube double x double volume cube side 首先,原型告訴編譯器,cube 有乙個double引數,如果程式沒有提供這樣的引數,原型將讓編譯器...