一般是先聲明的好,可以避免交叉引用的時候編譯不通過。
站在用戶的角度思考問題,與客戶深入溝通,找到政和網站設計與政和網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都做網站、網站制作、企業官網、英文網站、手機端網站、網站推廣、主機域名、網絡空間、企業郵箱。業務覆蓋政和地區。
當然,如果是很簡單的操作就不用了,可以直接寫在前面再加上 inline(內聯) 關鍵字。
如果是有多個源文件的程序中,會被其它源文件引用的函數必須要在頭文件聲明,否則其它文件無法調用
函數要先聲明后才能調用,聲明分為兩種如下:
先聲明后定義:
void b();
void a()
{
b();
}
void b()
{
}
聲明和定義在一個地方:
void b()
{
}
void a()
{
b(); //這樣才能滿足先聲明后調用
}
你編譯錯誤的原因應該是這樣:
void a()
{
b(); //此時b還沒有聲明
}
void b()
{
};
函數定義可以寫到其它(任意)函數的前或后。
只是,在使用函數前,如果當前位置處于函數定義之后,則不需要聲明函數,可以直接使用。如果當前位置處于函數未定義階段(函數定義在其后面),則要先進行函數聲明,才可以使用函數。
聲明可以寫在函數體內,也可以在函數體外進行聲明!
在C語言中,編譯一個C語言源文件是從第一行開始掃描到最后的,你調用一個函數,之前必須定義或申明過這個函數。
這樣是合法的:
void f(){
}
int main(){
f();
}
這樣也是合法的
void f();
int main(){
f();
}
void f(){
}
這樣就是非法的
int main(){
f();
}
void f(){
}
所以函數調用不一定需要先聲明,當函數定義調用函數之后需才要先申明。
可以!
例如:
#includestdio.h
void?priint();?//?先聲明
void?main()?{
print();
}
void?print()?{?//?后定義
printf("Hello?world!\n");
}
先聲明后定義在C中是允許的
樓主可以這樣想,C語言中,無論是常量,變量,函數,只有先定義才能使用的。在函數定義時,大腦要往一般的常量,變量定義的方向,切忌先不要想函數的別的。定義好后,把函數的定義先放一邊,不管它。
接著是函數聲明,大家都知道,C語言是有一個主函數main()和0或n個普通函數組成的。由于當代碼越長,用到的函數就越多,為了減少函數的混淆,所以要有個函數名,就像老師點名一樣,聲明一個函數,就如點一個學生的名字。
總之,函數定義是系統要求的,不定義就錯誤,而函數聲明實際上不定義也行,但為了方便和減少錯誤,人為規定要聲明。
名稱欄目:c語言函數先定義和先聲明 C語言中聲明和定義詳解
瀏覽路徑:http://www.2m8n56k.cn/article12/doogedc.html
成都網站建設公司_創新互聯,為您提供小程序開發、移動網站建設、網站策劃、建站公司、外貿網站建設、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯