C語言的編譯是自頂向下進(jìn)行的。這是由C語言的編譯器規(guī)定的。你可以認(rèn)為C語言的編譯器,就是把你寫的C語言代碼翻譯成計(jì)算機(jī)能懂的語言的翻譯者。翻譯者在讀你的代碼的時(shí)候,是從第一行開始向下讀的。
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)泉港,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
C語言不同于Java語言,在Java語言中,在一個(gè)類中,定義函數(shù)/方法后,在調(diào)用時(shí)不需要聲明。在C語言中定義函數(shù)后,在使用前,需要在main函數(shù)前進(jìn)行聲明,否則會報(bào)錯(cuò)。
其實(shí)直接用函數(shù)定義也就是void foo(){;}替代第一句也是可以的,不過函數(shù)的聲明讓你可以在定義它的代碼段之前使用它。
代碼的運(yùn)行是自上到下的。如果你的函數(shù)在被調(diào)用的地方的上面。那么你就可以不需要聲明。反之,如果你的函數(shù)在調(diào)用處的下面。
函數(shù)(這很常見)。因?yàn)?C 語言對函數(shù)的順序是有要求的,寫在后面的函數(shù)才能調(diào)用前面的函數(shù)。這樣一來,無論是 a 在前面還是 b 在前面都無法實(shí)現(xiàn),所以就可以先單獨(dú)聲明 a 和 b,然后在后面再具體實(shí)現(xiàn) a 和 b。
函數(shù)的入口在main(),程序從上至下執(zhí)行的,如果你的函數(shù)在main()之后定義并且沒有聲明,執(zhí)行的時(shí)候編譯器會找不到定義而編譯不過。
可能有些不聲明也能通過,但效率極低,最好先聲明。C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。
再說一句,寫函數(shù)聲明是編寫程序的良好習(xí)慣 請注意這是C程序,Cguan方聲明標(biāo)準(zhǔn)編譯器是Turboc 2。
不是,如果你把自定義函數(shù)寫在主函數(shù)前面的話,就是說寫在開始的話,就可不用聲明了。否則聲明是必需的。
從標(biāo)準(zhǔn)規(guī)范來看:C語言允許函數(shù)里聲明函數(shù),但是不建議這么寫,因?yàn)椴焕诙辔臋n的組織。C語言禁止函數(shù)里定義函數(shù),但是個(gè)別編譯器卻沒遵循標(biāo)準(zhǔn)。
代碼的運(yùn)行是自上到下的。如果你的函數(shù)在被調(diào)用的地方的上面。那么你就可以不需要聲明。反之,如果你的函數(shù)在調(diào)用處的下面。
編譯器是按順序編譯的,如果有以下情況:void a(){ b();//編譯器在這里還未編譯b(),所以此時(shí)函數(shù)b是不存在的。} void b(){} 打個(gè)比方 int a=b; //報(bào)錯(cuò) int b=0;其實(shí)是一個(gè)道理。變量只能先定義再使用。
如果fun1在main函數(shù)之后實(shí)現(xiàn),那么調(diào)用之前一定要先聲明。
可能有些不聲明也能通過,但效率極低,最好先聲明。C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。
在C語言中,編譯一個(gè)C語言源文件是從第一行開始掃描到最后的,你調(diào)用一個(gè)函數(shù),之前必須定義或申明過這個(gè)函數(shù)。
c); }如果函數(shù)在調(diào)用函數(shù)的函數(shù)之后定義,為了通知編譯程序要調(diào)用函數(shù)的格式,需要在調(diào)用函數(shù)的函數(shù)前添加函數(shù)的聲明。