在C語言中,編譯一個(gè)C語言源文件是從第一行開始掃描到最后的,你調(diào)用一個(gè)函數(shù),之前必須定義或申明過這個(gè)函數(shù)。
創(chuàng)新互聯(lián)建站是專業(yè)的桐鄉(xiāng)網(wǎng)站建設(shè)公司,桐鄉(xiāng)接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行桐鄉(xiāng)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
這樣是合法的:
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ù)之后需才要先申明。
如果函數(shù)定義在要調(diào)用該函數(shù)的函數(shù)的前面,就可以不用聲明了,比如定義在main()前面的函數(shù),在main()函數(shù)里面就可以不用聲明,直接調(diào)用就可以,但是如果在后面的話,就要聲明了
是這樣的,編譯器在編譯的時(shí)候,是從頭開始的,你寫在了前面,編譯器就知道了你有這么一個(gè)函數(shù),到后面執(zhí)行到主函數(shù)里,等要調(diào)用函數(shù)的時(shí)候電腦就知道了,因?yàn)樗耙颜J(rèn)識(shí)過你寫的函數(shù)了
如果先寫主函數(shù),那么它先編譯主函數(shù),在執(zhí)行到調(diào)用你的函數(shù)的時(shí)候,因?yàn)樗€沒找到你的函數(shù),所以它不認(rèn)識(shí),所以大多數(shù)情況下,如果主函數(shù)寫在前面,我們都會(huì)在主函數(shù)里聲明一句,告訴編譯器讓它到后面去找,但有的編譯器即使你不寫也不會(huì)報(bào)錯(cuò)。
#include?stdio.h?
int?sum(int?x,int?y)?
{?int?z;?
z=x+y;?
printf("%d",z);?
return?z;?
}?
int?main()?
{?int?a,b,s;?
printf("Input?a?and?b:");
scanf("%d,%d",a,b);?
s=sum(a,b);
}
這樣的就是被調(diào)用函數(shù)在主函數(shù)之前就被定義了。
如果你要把被調(diào)函數(shù)放在主函數(shù)后面,那么就要像下面那樣,先定義。
#include?stdio.h?
int?sum(int?x,int?y);
int?main()?
{?int?a,b,s;?
printf("Input?a?and?b:");
scanf("%d,%d",a,b);?
s=sum(a,b);
}
int?sum(int?x,int?y)?
{?int?z;?
z=x+y;?
printf("%d",z);?
return?z;?
}?
隨便找了一段,沒編譯,可能有錯(cuò),你就講究看下吧。
函數(shù)定義可以在調(diào)用之后,但是在調(diào)用前要加函數(shù)聲明
#include?iostream
using?namespace?std;
int?main()
{
int?b=2;
int?test(int?a);???//函數(shù)聲明(如果函數(shù)定義在調(diào)用后且沒有聲明,程序編譯不了)?
couttest(b);?????//函數(shù)調(diào)用
}
int?test(int?a)?????????//函數(shù)定義
{
return?a+2;?
}
當(dāng)前題目:c語言中調(diào)用的函數(shù)在后面 c語言在函數(shù)內(nèi)部調(diào)用另一個(gè)函數(shù)
URL地址:http://aaarwkj.com/article4/docjpoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、App開發(fā)、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)