c語(yǔ)言函數(shù)的定義與聲明 c語(yǔ)言的函數(shù)的定義

c語(yǔ)言中函數(shù)定義和聲明有什么區(qū)別

從C語(yǔ)言編譯器的角度來看,函數(shù)聲明只是一種協(xié)議,它告訴了調(diào)用者在調(diào)用這個(gè)函數(shù)之前需要給他什么參數(shù),一般參數(shù)是通過寄存器或者壓棧的方式傳給被調(diào)用函數(shù)的,具體這些參數(shù)如何使用以及返回什么值到相應(yīng)的寄存器里返回給調(diào)用者則是定義所描述的。

創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)互聯(lián)產(chǎn)品、成都全網(wǎng)營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。十多年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。

C語(yǔ)言函數(shù)定義和說明的格式

C語(yǔ)言的函數(shù)定義格式是:

函數(shù)類型 函數(shù)名稱 ( 參數(shù)列表 )

{

//函數(shù)體

}

函數(shù)聲明,不是說明的格式是“函數(shù)定義格式”的第一行,然后加 “;”,即:

函數(shù)類型 函數(shù)名稱 ( 參數(shù)列表 );

特別地,在函數(shù)聲明中的參數(shù)列表中,不需要給出具體的變量名稱,但必須給出每個(gè)變量的類型。

c語(yǔ)言中,聲明和定義有什么區(qū)別

如果是指變量的聲明和定義:

從編譯原理上來說,聲明是僅僅告訴編譯器,有個(gè)某類型的變量會(huì)被使用,但是編譯器并不會(huì)為它分配任何內(nèi)存。而定義就是分配了內(nèi)存。

對(duì)于下面的兩句代碼:

void Func()

{

int a;

int b=1;

a=0;

}

對(duì)于第一行代碼,編譯器不會(huì)做任何事,它不會(huì)為它在棧中分配一點(diǎn)東西,直到第三句,a=0;時(shí),編譯器才會(huì)將其壓入棧中。而對(duì)于int b=0;這一句,編譯器就會(huì)生成一條指令,為它賦值。如果反匯編,看到的代碼可能是這樣的:

push 1;

push 0;

當(dāng)然,并不一定編譯器就會(huì)樣做,也有可能在聲明int a時(shí),編譯器就會(huì)把一個(gè)廢值入棧,到第三條再為其賦值,這要看編譯器的具體取舍,所以,聲明不一定不是定義,而定義一定是定義。

但是,下面的聲明,一定僅僅是聲明:

extern int a;

這表時(shí),有一個(gè)int變量a,它一定是在另外其他地方定義的,所以編譯器此時(shí)一定不會(huì)做什么分配內(nèi)存的事,因?yàn)樗褪锹暶鳎瑑H僅表明下面的代碼引用了一個(gè)符號(hào),而這個(gè)符號(hào)是int類型的a而已。

如果是指函數(shù)的聲明和定義:

聲明:一般在頭文件里,對(duì)編譯器說:這里我有一個(gè)函數(shù)叫function() 讓編譯器知道這個(gè)函數(shù)的存在。

定義:一般在源文件里,具體就是函數(shù)的實(shí)現(xiàn)過程 寫明函數(shù)體。

C語(yǔ)言 函數(shù)定義 函數(shù)聲明 區(qū)別

樓主可以這樣想,C語(yǔ)言中,無論是常量,變量,函數(shù),只有先定義才能使用的。在函數(shù)定義時(shí),大腦要往一般的常量,變量定義的方向,切忌先不要想函數(shù)的別的。定義好后,把函數(shù)的定義先放一邊,不管它。

接著是函數(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é)生的名字。

總之,函數(shù)定義是系統(tǒng)要求的,不定義就錯(cuò)誤,而函數(shù)聲明實(shí)際上不定義也行,但為了方便和減少錯(cuò)誤,人為規(guī)定要聲明。

文章名稱:c語(yǔ)言函數(shù)的定義與聲明 c語(yǔ)言的函數(shù)的定義
本文網(wǎng)址:http://muchs.cn/article2/doecooc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、微信公眾號(hào)虛擬主機(jī)、域名注冊(cè)標(biāo)簽優(yōu)化、建站公司

廣告

聲明:本網(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)

手機(jī)網(wǎng)站建設(shè)