如果單獨編譯「函數」,則不會檢測到不匹配,「函數」將返回一個double,該函數將被視爲一個int ...鑑於我們所說的聲明如何與定義相匹配,這可能會令人驚訝。錯配可能發生的原因是,如果沒有函數原型,函數是隱含在表達它的首次亮相宣佈,如C函數調用:瞭解「隱式int」規則
sum += "the function"(line);
如果名稱尚未先前聲明發生在一個表達式中,後面跟着一個左括號,它被上下文聲明爲一個函數名,該函數被假定返回一個int,並且沒有任何關於它的參數的假設。
對於模棱兩可的問題,我提前道歉,但這是什麼意思?順便說一下,這是來自Brian W. Kernighan和Dennis M. Ritchie的C Programming Language book第2版的第73頁4.3章。
K&R這是什麼頁面?但我認爲你所問的問題是關於你聲明函數/類型的默認值,它們默認爲「int」。此線程是我認爲你的問題的重複:http://stackoverflow.com/questions/5885156/no-defined-type-of-a-function-parameter-defaults-to-int-am-i-insane – birryree