1. 程式人生 > >c語言中函式宣告的作用

c語言中函式宣告的作用

在c語言中函式宣告不是必須的,即使沒有宣告函式,gcc編譯器也只是會提示警告。但是函式宣告卻是很有必要的。

那麼函式宣告到底有宣告作用呢?

其實函式宣告的作用是讓編譯器幫你檢查你呼叫函式時有沒有錯誤。比如引數的數量是否正確,如果呼叫函式時候少

傳入一個引數,並且沒有宣告該函式,編譯器無法知道你呼叫是否正確,只會提示一個警告。很多人會忽略警告,導

致最後程式執行時出現異常。

為什麼如果不宣告函式,編譯器發現不了錯誤?

編譯器在編譯過程中依次生成對應原始檔的可重定位目標檔案(.o),每個原始檔中呼叫的函式在連結前都是以符號的

形式體現在.o檔案中。在編譯過程中不會去檢查某個函式的形式,因為函式引數是通過暫存器和壓棧來處理的,直接把

函式翻譯成符號,編譯器是不知道關於函式引數的資訊的,最後交給聯結器把符號翻譯成地址。所以連結的時候只要能

找到對應得符號就不會報錯。