為什麼需要函式原型?
在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引數,如果程式沒有提供這樣的引數,原型將讓編譯器...