不需要啊。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),江岸網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:江岸等地區(qū)。江岸做網(wǎng)站價(jià)格咨詢:18980820575
只要函數(shù)的定義在調(diào)用之前就不用聲明。
比如下面的代碼,就不需要聲明
void?fun1()
{
}
void?fun2()
{
fun1();
}
不一定。
有兩種方法:
第一種:無論在printf中,還是main中,或者是在其他任何函數(shù)中,要調(diào)用自定義函數(shù),都要進(jìn)行先定義。后面就可以自由調(diào)用了。
第二種:C語言把自定義函數(shù)的語句放在調(diào)用的后面,但調(diào)用之前,一定要寫上自定義函數(shù)的聲明語句。只有這樣,才不會(huì)出現(xiàn)編譯錯(cuò)誤。
在C語言中,編譯一個(gè)C語言源文件是從第一行開始掃描到最后的,你調(diào)用一個(gè)函數(shù),之前必須定義或申明過這個(gè)函數(shù)。
這樣是合法的:
void f(){
}
int main(){
f();
}
這樣也是合法的
void f();
int main(){
f();
}
void f(){
}
這樣就是非法的
int main(){
f();
}
void f(){
}
所以函數(shù)調(diào)用不一定需要先聲明,當(dāng)函數(shù)定義調(diào)用函數(shù)之后需才要先申明。
編譯器是按順序編譯的,如果有以下情況:
void a()
{
b();//編譯器在這里還未編譯b(),所以此時(shí)函數(shù)b是不存在的。
}
void b()
{}
打個(gè)比方
int a=b; //報(bào)錯(cuò)
int b=0;
其實(shí)是一個(gè)道理。
變量只能先定義再使用。
這個(gè)程序可以這樣分析,其實(shí)很簡單,首先你要添加上去#include
這個(gè)頭文件,其次你就這樣記憶:要是main()函數(shù)在被調(diào)用函數(shù)的前面,也就是像你所說的這樣情況的話,就必須在main()函數(shù)前面對(duì)被調(diào)用函數(shù)進(jìn)行聲明才可以正常調(diào)用函數(shù),不然編譯會(huì)出錯(cuò)的,
如果被調(diào)用函數(shù)出現(xiàn)在在了main()函數(shù)的上面,也就是mian()函數(shù)和你現(xiàn)在max函數(shù)位置調(diào)換一下,那么就不必對(duì)被調(diào)用函數(shù)進(jìn)行聲明了,直接調(diào)用就可以了。
這樣的記憶比較清晰一點(diǎn),我平時(shí)編程是將主函數(shù)寫在最后,前面寫被調(diào)用函數(shù),這樣就避免了忘記寫函數(shù)聲明而編譯出錯(cuò),希望我的解答能夠幫助到你,
網(wǎng)頁標(biāo)題:c語言調(diào)用函數(shù)前要先聲明 c語言函數(shù)聲明的用法
本文來源:http://chinadenli.net/article36/hgocsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、商城網(wǎng)站、響應(yīng)式網(wǎng)站、App開發(fā)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)