函數(shù)聲明是讓代碼調(diào)用點(diǎn)知道按照什么格式來(lái)調(diào)用函數(shù)。(函數(shù)參數(shù)列表是什么,返回值是什么。)否則調(diào)用點(diǎn)無(wú)法確知調(diào)用函數(shù)的格式。(注:在C里也可以無(wú)函數(shù)聲明就調(diào)用,那樣會(huì)在程序鏈接的時(shí)候做調(diào)用匹配檢查。

成都創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比金堂縣網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式金堂縣網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋金堂縣地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。
如果沒(méi)有具體實(shí)現(xiàn)的函數(shù)體代碼(也就是大括號(hào)內(nèi)容),那么就是函數(shù)聲明。比如void fun(int ,int *);關(guān)于函數(shù)聲明和調(diào)用:如果fun函數(shù)定義在main代碼上面。比如:void fun(int a,int *b){。。
{ foo();} void foo(){ ;} 以上代碼中,第一句就是所謂函數(shù)聲明。其實(shí)直接用函數(shù)定義也就是void foo(){;}替代第一句也是可以的,不過(guò)函數(shù)的聲明讓你可以在定義它的代碼段之前使用它。
聲明與定義的區(qū)別:函數(shù)的聲明與函數(shù)的定義形式上十分相似,但是二者有著本質(zhì)上的不同。聲明是不開(kāi)辟內(nèi)存的,僅僅告訴編譯器,要聲明的部分存在,要預(yù)留一點(diǎn)空間。定義則需要開(kāi)辟內(nèi)存。
接著是函數(shù)聲明,大家都知道,C語(yǔ)言是有一個(gè)主函數(shù)main()和0或n個(gè)普通函數(shù)組成的。由于當(dāng)代碼越長(zhǎng),用到的函數(shù)就越多,為了減少函數(shù)的混淆,所以要有個(gè)函數(shù)名,就像老師點(diǎn)名一樣,聲明一個(gè)函數(shù),就如點(diǎn)一個(gè)學(xué)生的名字。
不同文件中:fun.h:void fun(); //函數(shù)聲明 fun.c:extern int a; //聲明,不再分配內(nèi)存,extern關(guān)鍵字表示此變量已在其它地方定義。
由于C語(yǔ)言的編譯,是對(duì)c/cpp文件的內(nèi)容從上至下編譯。一般子函數(shù)(用戶定義的函數(shù))放在主函數(shù)(main函數(shù))后面的話,main函數(shù)前面就該有聲明,不然編譯系統(tǒng)將無(wú)法識(shí)別到子函數(shù)。
簡(jiǎn)單地說(shuō),聲明就是告知編譯器,后續(xù)代碼中會(huì)有這樣?xùn)|西,而定義是告知編譯器真的申請(qǐng)一塊內(nèi)存來(lái)存儲(chǔ)這樣?xùn)|西。對(duì)于變量來(lái)說(shuō),聲明和定義幾乎是相同的,尤其是在同一個(gè)文件中聲明或者定義變量。
1、因?yàn)?C 語(yǔ)言對(duì)函數(shù)的順序是有要求的,寫(xiě)在后面的函數(shù)才能調(diào)用前面的函數(shù)。這樣一來(lái),無(wú)論是 a 在前面還是 b 在前面都無(wú)法實(shí)現(xiàn),所以就可以先單獨(dú)聲明 a 和 b,然后在后面再具體實(shí)現(xiàn) a 和 b。
2、C語(yǔ)言不同于Java語(yǔ)言,在Java語(yǔ)言中,在一個(gè)類(lèi)中,定義函數(shù)/方法后,在調(diào)用時(shí)不需要聲明。在C語(yǔ)言中定義函數(shù)后,在使用前,需要在main函數(shù)前進(jìn)行聲明,否則會(huì)報(bào)錯(cuò)。
3、你可以認(rèn)為C語(yǔ)言的編譯器,就是把你寫(xiě)的C語(yǔ)言代碼翻譯成計(jì)算機(jī)能懂的語(yǔ)言的翻譯者。翻譯者在讀你的代碼的時(shí)候,是從第一行開(kāi)始向下讀的。你寫(xiě)的函數(shù)聲明,就是告訴翻譯者,你定義了一個(gè)函數(shù)。
網(wǎng)頁(yè)標(biāo)題:如何理解c語(yǔ)言函數(shù)聲明 c語(yǔ)言函數(shù)聲明有什么用
本文路徑:http://chinadenli.net/article45/deigshi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、虛擬主機(jī)、云服務(wù)器、網(wǎng)站策劃、Google、自適應(yīng)網(wǎng)站
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容