看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《s8752199 (s8752199)》之銘言: : 如題 : 剛試了簡單的副函式沒出現什麼問題 : 請問會怎樣嗎 : ? : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.31.187
tinlans:這東西主要是用來符合識別字在使用前必須宣告的規則而已。 05/13 10:34
MOONRAKER:不在使用前宣告,則函數的參數個數概以第一次呼叫時的 05/13 11:22
MOONRAKER:個數為準,且形態通通自動設為int。如果你寫一個函數 05/13 11:23
MOONRAKER:sq(double x){return x*x;}又不用prototype那你可以期待 05/13 11:23
MOONRAKER:會有很幽默的事情發生… 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)
MOONRAKER:只有在參加IOCCC時可用 :* 05/13 15:49