Re: [問題] 寫副函式不寫Function prototype會怎樣嗎?

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/05/13 13:26), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《s8752199 (s8752199)》之銘言: : 如題 : 剛試了簡單的副函式沒出現什麼問題 : 請問會怎樣嗎 : ? : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.31.187

05/13 10:34,
這東西主要是用來符合識別字在使用前必須宣告的規則而已。
05/13 10:34

05/13 11:22,
不在使用前宣告,則函數的參數個數概以第一次呼叫時的
05/13 11:22

05/13 11:23,
個數為準,且形態通通自動設為int。如果你寫一個函數
05/13 11:23

05/13 11:23,
sq(double x){return x*x;}又不用prototype那你可以期待
05/13 11:23

05/13 11:24,
會有很幽默的事情發生…
05/13 11:24
不是的,如果不宣告函式即使用,以 C90 的標準是 compiler 會幫你宣告成 「int f()」的型式,括號內沒放任何參數的意思是它接受任意個數、任意型 別的參數,並回傳 int。就算你參數亂傳一通,compiler 照樣很高興地編過 去。 不宣告就呼叫函式真的不是什麼好事,compiler 無法幫你檢查參數型別與個 數是否正確,因此 C++ 和 C99 規格都把這個功能去掉了,意味著你的 code 無法在新的 compiler 上過關。拜託,地球只有一個,別再污染環境。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2 ※ 編輯: littleshan 來自: 219.87.151.2 (05/13 13:27)

05/13 15:49, , 1F
只有在參加IOCCC時可用 :*
05/13 15:49, 1F
文章代碼(AID): #1A2be49C (C_and_CPP)
文章代碼(AID): #1A2be49C (C_and_CPP)