c語言對(duì)函數(shù)的原型說明 c語言中,函數(shù)可以用原型說明,也可用簡(jiǎn)單說明

C語言的函數(shù)原型怎樣理解

函數(shù)原型作為聲明,作用是提示編譯器,作為標(biāo)識(shí)符的函數(shù)名,在聲明之后或外部編譯單元/庫文件存在定義,以抑制編譯器遇到這個(gè)標(biāo)識(shí)符時(shí)產(chǎn)生標(biāo)識(shí)符未定義的編譯錯(cuò)誤,同時(shí)標(biāo)明出這個(gè)函數(shù)的參數(shù)傳遞及出入棧順序等必要的進(jìn)出要素,函數(shù)的定義則始終以原型為基準(zhǔn)進(jìn)行實(shí)現(xiàn)。原型作為語法技術(shù)的提出,出發(fā)點(diǎn)就在于此,利用它可以方便地定義互相遞歸的函數(shù),以及引用外部庫文件的符號(hào)。

目前創(chuàng)新互聯(lián)建站已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、四平網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

c語言中函數(shù)原型聲明部分是什么意思

函數(shù)原型申明就是在main函數(shù)前面需要申明一下,否則main函數(shù)調(diào)用這個(gè)函數(shù)時(shí)會(huì)找不到,原型申明可以不定義具體的函數(shù)體,然后可以把函數(shù)體的具體部分放在main函數(shù)后面再來單獨(dú)定義,這樣程序整體上更整潔,要不然自定義函數(shù)都在main函數(shù)的前面就定義了,那代碼一多還得找主函數(shù)。

C語言中,為什么要說明函數(shù)原型?

函數(shù)原型能告訴編譯程序一個(gè)函數(shù)將接受什么樣的參數(shù),將返回什么樣的返回值,這樣編譯程序就能檢查對(duì)函數(shù)的調(diào)用是否正確,是否存在錯(cuò)誤的類型轉(zhuǎn)換。例如,現(xiàn)有以下函數(shù)原型;

int

some_func(int,char·,long);

編譯程序就會(huì)檢查所有對(duì)該函數(shù)的引用(包括該函數(shù)的定義)是否使用了三個(gè)參數(shù)并且返回一個(gè)int類型的值。如果編譯程序發(fā)現(xiàn)函數(shù)的調(diào)用或定義與函數(shù)原型不匹配,編譯程序就會(huì)報(bào)告出錯(cuò)或警告消息。例如,對(duì)上述函數(shù)原型來說,當(dāng)編譯程序檢查以下語句時(shí),就會(huì)報(bào)告出錯(cuò)或警告消息:

x

=

some_func(l);

/*

not

enough

arguments

passed

*/

x

=

somc_funcC*HELLOl",

1,

"DUDE:");

/*

wrong

type

of

arguments

used

*/

x

=

aome_funcd,

sir,

2879,

"T");

/*

too

many

arguments

passed

*/

下例中的函數(shù)調(diào)用同樣是不正確的,因?yàn)楹瘮?shù)some_func()的返回值不是一個(gè)long*類型的值。

lValue=some_func(1,str,2879);

/*some_rune()returns

anint,not

a

long*

*/

同樣,編譯程序還能檢查函數(shù)的定義(或函數(shù)體)是否與函數(shù)原型匹配。例如,當(dāng)編譯程序檢查以下函數(shù)定義時(shí),就會(huì)報(bào)告出錯(cuò)或警告消息:

int

some_func(char

*string,longlValue,int

iValue)

/*

wrong

order

Of

{

parameters

*/

......

}

總之,在源文件中說明函數(shù)原型提供了一種檢查函數(shù)是否被正確引用的機(jī)制。目前許多流行的編譯程序都會(huì)檢查被引用的函數(shù)的原型是否已在源文件中說明過,如果沒有,就會(huì)發(fā)出警告消息。

C語言中函數(shù)的定義格式是什么,函數(shù)原型聲明的語法格式?

函數(shù)定義就是規(guī)定函數(shù)的格式與功能。

函數(shù)聲明就是在函數(shù)調(diào)用之前進(jìn)行的一種說明。

下面舉例說明兩者的語法格式:

#includestdio.h

int?fun(int?a,?int?b);??//?函數(shù)的聲明

void?main()

{

int?x=1,?y=2;

int?c;

c?=?fun(x+y);

}

//?下面的fun函數(shù)就是函數(shù)的定義

int?fun(int?a,?int?b)

{

return?a+b;

}

注:如果被調(diào)函數(shù)(上例中為fun函數(shù))寫在調(diào)用處之前,可以不聲明(本例是現(xiàn)在調(diào)用處?(c = fun(x+y);)之后)。

新聞名稱:c語言對(duì)函數(shù)的原型說明 c語言中,函數(shù)可以用原型說明,也可用簡(jiǎn)單說明
分享地址:http://bm7419.com/article10/ddejido.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)云服務(wù)器、企業(yè)建站App開發(fā)、網(wǎng)站設(shè)計(jì)軟件開發(fā)

廣告

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

外貿(mào)網(wǎng)站制作