為什么程式這樣寫會報錯
uj5u.com熱心網友回復:
你不會是沒有前面宣告吧?uj5u.com熱心網友回復:
主函式里已經宣告了啊uj5u.com熱心網友回復:
報什么錯?找不到jia?到最前面申明一下uj5u.com熱心網友回復:
在 int main()上面寫一句void jia(int a, int b, int *c);
uj5u.com熱心網友回復:
而且你的printf函式中少了z的占位符uj5u.com熱心網友回復:
你的printf里少了%d吧,printf輸出有一定的格式,前面不加%d,標識后面沒有對應的引數輸出呀。
另外,函式也要做到先宣告后使用的~
uj5u.com熱心網友回復:
從你這句話判斷應該確實是沒有宣告
uj5u.com熱心網友回復:
當你呼叫某個函式時,編譯器需要知道這個函式有幾個引數,它們是什么型別,以及回傳值的型別對于你的代碼,編譯器從上到下編譯時,到看到你的jia( x, y, &z )時,它知道你在呼叫一個函式,但關于這個函式的引數和回傳值都不知道,于是可能會有兩種處理:
1. 報錯
2. 警告,但是可以編譯通過,它會默認這個函式的回傳值型別和引數,然后,在之后遇到這個函式的宣告時,如果發現與預期的型別或數量不符,則警告或報錯
讓編譯器知道這個函式以便生成正確的機器碼很簡單,只需要有函式宣告
函式宣告是以下兩種情況:
1. void fun( void );
這樣帶分號結尾的函式宣告
2. void fun( void )
{
return ;
}
這是函式的定義,它的函式頭就是宣告
以上兩種情況任意一種出現在你呼叫函式之前都可以
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35898.html
標籤:C語言
上一篇:c++初級選手,編譯出錯
