c語(yǔ)言函數(shù)的定義和聲明 C語(yǔ)言的函數(shù)聲明是什么意思?
C語(yǔ)言的函數(shù)聲明是什么意思?聲明就是有這樣一個(gè)函數(shù),定義就是具體的實(shí)現(xiàn)。例如:函數(shù)聲明:int fun(int a,int b)函數(shù)定義:int fun(int a,int b)函數(shù)定義:int c=
C語(yǔ)言的函數(shù)聲明是什么意思?
聲明就是有這樣一個(gè)函數(shù),定義就是具體的實(shí)現(xiàn)。例如:函數(shù)聲明:int fun(int a,int b)函數(shù)定義:int fun(int a,int b)函數(shù)定義:int c=a b/R return c語(yǔ)句就像一個(gè)被定義的頭,比較簡(jiǎn)單,函數(shù)是用來(lái)調(diào)用的,如果函數(shù)定義部分被寫(xiě)到調(diào)用的位置,它被執(zhí)行到調(diào)用的位置,并且在執(zhí)行結(jié)束時(shí)找不到。當(dāng)然,這是錯(cuò)誤的,有必要在它前面添加一個(gè)聲明,表明它有這個(gè)功能。否則,先寫(xiě)函數(shù)體,聲明就不能用了,而且不在同一個(gè)源文件中。這樣,文字就簡(jiǎn)單明了了。我累了
嵌入函數(shù)的頭文件可以避免重復(fù)
聲明。例如,不需要在程序中重復(fù)聲明函數(shù)原型。
C語(yǔ)言庫(kù)函數(shù)要不要原型聲明?
首先,從C語(yǔ)言的特點(diǎn)來(lái)看,它是一種靜態(tài)語(yǔ)言,所有變量都必須有一個(gè)類(lèi)型,無(wú)論是基本類(lèi)型,如int、char、float、double,還是structure、union、enumeration等用戶(hù)定義的類(lèi)型,只要是type關(guān)鍵字,就可以用來(lái)定義變量。另外,還有一種叫做指針的變量類(lèi)型,分為變量指針和函數(shù)指針。變量指針指向特定數(shù)據(jù)類(lèi)型的地址,函數(shù)指針指向函數(shù)的入口地址??梢酝ㄟ^(guò)組合變量類(lèi)型和*符號(hào)來(lái)聲明指針。這里需要注意的是,指針是一個(gè)遞歸定義,也就是說(shuō),指針可以指向指針,這有點(diǎn)尷尬。核心意思是指針可以一直指向。
函數(shù)指針類(lèi)型的變量定義有點(diǎn)特殊。下面是一個(gè)示例:
definition:typedef void(*myfun)(int)
void funimp(int param){/*function content*/}
use:myfun=funimpmyfun(10)
總之,請(qǐng)記住定義變量的關(guān)鍵點(diǎn)必須有一個(gè)類(lèi)型,這與Python和其他動(dòng)態(tài)語(yǔ)言不同。為了更好地了解程序的運(yùn)行狀態(tài),最好了解每種類(lèi)型的變量所占用的內(nèi)存大小。這是非常重要的。許多錯(cuò)誤是由不同系統(tǒng)中變量占用的內(nèi)存大小不同造成的。例如,對(duì)于int類(lèi)型,在32位系統(tǒng)中需要4個(gè)字節(jié),在64位系統(tǒng)中需要8個(gè)字節(jié)。此外,我們還應(yīng)該清楚內(nèi)存中數(shù)據(jù)的大小模式,即高位字節(jié)是第一位的還是狀態(tài)字節(jié)是第一位的。