重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
理論上來說
成都創(chuàng)新互聯(lián)公司企業(yè)建站,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于做網(wǎng)站、網(wǎng)站設(shè)計(jì)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。
自定義函數(shù)可以不需要使用
所有過程
都寫在主函數(shù)里面也可以的。
但是,實(shí)際上
1
如果同樣的功能需要被多次使用。
比如,要在程序不同時間對數(shù)組進(jìn)行排序。
那么每個排序點(diǎn),把排序算法實(shí)現(xiàn)一遍,明顯是白費(fèi)勁的。
這時定義一個排序函數(shù)就會很好看了。
2
當(dāng)功能較多,同時代碼量比較大的時候
按照功能抽象出一個個函數(shù),這樣無論是代碼閱讀
還是維護(hù)
都會省力很多。
想象一下,如果一個程序中
有一千個函數(shù)(其實(shí)并不算多)
每個函數(shù)中定義三個局部變量。
那么要都寫在主函數(shù)里面,就要定義3000個局部變量,管理,維護(hù)這些局部變量
甚至給他們想個不重復(fù)的名字
就已經(jīng)足夠讓人崩潰了
不可以,即使主函數(shù)中也不可以,C語言只允許在函數(shù)中聲明和嵌套調(diào)用。
C語言中是不允許作嵌套的函數(shù)定義。因此程序中各個函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題,這樣是為了簡化C語言編譯器的邏輯性。
可以在函數(shù)中聲明函數(shù)(嵌套聲明),但是不能在函數(shù)中定義函數(shù)(嵌套定義)。
p.s.:有些編譯器允許嵌套定義,但是最好不要嵌套定義,因?yàn)镃標(biāo)準(zhǔn)規(guī)定不能嵌套定義。
1使用函數(shù)后,編程可以更加的模塊化,以后使用的時候,可以直接拿過來用。
2問題描述更加簡潔清晰。
3程序沒有大段不易理解的東西
//C語中定義函數(shù),是完成某項(xiàng)特定的功能,知道它完成的功能就可以使用它,體現(xiàn)了它的模塊化的特點(diǎn).例如我們平常學(xué)的輸出就是一個函數(shù),只不過是系統(tǒng)定義好的
只要我想輸出某個東西,我就可以調(diào)用printf來完成相應(yīng)的功能.
例如:main()
{ int a,b,c;
scanf("%d,%d",a,b);
c=max(a,b);
printf("Max is %d",c);
}
int max(int x, int y)//這 個就是我們定義的函數(shù),這個函數(shù)是求兩個數(shù)的最大值.形參x,y本身都是沒有值,什么時候有值呢,是我們調(diào)用的時候,c=max(a,b),它的意思把a(bǔ)給x,b給y.
{ int z;
z=xy?x:y;
return(z);
}