查看單個文章
  #4  
舊 2014-05-06, 09:39 PM
robowang robowang 目前離線
進階會員
 
註冊日期: 2004-05-22
文章: 372
預設

第三行是宣告一個函數的"原型",
意思是告訴編譯程式說:我底下有一個函數, 名稱是 myfunc, 而此函數需要傳進一個 int 值

編譯程式處理到第三行時, 雖然還不知道 myfunc 函數裏的程式碼, 但已經知道存在著 myfunc 這個函數, 以及它需要的參數。
而當編譯程式處理到 int z = myfunc(y); 這一行時, 就會知道這一行程式是在呼叫"底下才會出現的"函數, 而 y 也是 int, 符合 myfunc 的定義, 因此編譯程式就能判斷這一行是正確的語法

函數原型的宣告, 旨在讓編譯程式預先知道函數的名稱與參數等等, 好進行後續的處理
因此, 函數原型的宣告, 必須符合後面函數的實體, 否則編譯就會出問題

原來的宣告 myfunc(void) 跟後來的函數實體 myfunc(int i) 不同, 當然編譯不過
回覆時引用此篇文章