那么很多人也許就會(huì)想,那我們何必還要聲明這一步呢?我們只要把所有的函數(shù)的定義都放在前面不就可以了嗎?這種想法是不可取的,一個(gè)好的程序員總是在程序的開(kāi)頭聲明所有用到的函數(shù)和變量,這是為了以后好檢查。
前面說(shuō)了,在調(diào)用之前,必須先聲明函數(shù),所以下面的做法也是正確的(但在這里我個(gè)人并不提倡)。
main()
{
void a();
a();
}
void a()
{
int num;
scanf(%d,&num);
printf(%d\n,num);
}
一般來(lái)說(shuō),比較好的程序書(shū)寫(xiě)順序是,先聲明函數(shù),然后寫(xiě)主函數(shù),然后再寫(xiě)那些自定義的函數(shù)。
既然main()函數(shù)可以調(diào)用別的函數(shù),那么我們自己定義的函數(shù)能不能再調(diào)用其他函數(shù)呢?答案是可以的。看下面的例子:
void a();
void b();
main()
{
a();
}
void a()
{
b();
}
void b()
{
int num;
scanf(%d,&num);
printf(%d\n,num);
}
main()函數(shù)先調(diào)用a()函數(shù),而a()函數(shù)又調(diào)用b()函數(shù)。在C語(yǔ)言里,對(duì)調(diào)用函數(shù)的層數(shù)沒(méi)有嚴(yán)格的限制,我們可以往下調(diào)用100層、1000層,但是在這里我們并不提倡調(diào)用的層數(shù)太多(除非是遞歸),因?yàn)閷訑?shù)太多,對(duì)以后的檢查有一些干擾,函數(shù)調(diào)過(guò)來(lái)調(diào)過(guò)去,容易讓自己都暈頭轉(zhuǎn)向。
某些人可能就不明白了,看上面的例子,好象使用函數(shù)后,程序變的更長(zhǎng)了,更不讓人理解。當(dāng)然,我舉的這個(gè)例子的確沒(méi)有必要用函數(shù)來(lái)實(shí)現(xiàn),但是對(duì)于某些實(shí)際問(wèn)題,如果不使用函數(shù),會(huì)讓程序變的很亂,這涉及到參數(shù)問(wèn)題,我們下一節(jié)再說(shuō)。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程匯總計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言常見(jiàn)知識(shí)點(diǎn)總結(jié)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |