沒有哪個(gè)規(guī)定和標(biāo)準(zhǔn)說函數(shù)的聲明必須在函數(shù)外部,只要根據(jù)需要并且放在調(diào)用函數(shù)之前聲明就可以
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、分宜網(wǎng)站維護(hù)、網(wǎng)站推廣。
樓主的問題是聲明的類型要與定義的類型一致,而不是位置的問題
c語言中可以在函數(shù)中聲明函數(shù)。
函數(shù)1,int?max(int?a,int?b)
{***函數(shù)內(nèi)容省略**}
函數(shù)2,int?min(int?x,int?y)
{**函數(shù)內(nèi)容省略***}
在同一個(gè)程序里,函數(shù)1在函數(shù)2的上部,則不需要在函數(shù)2中聲明函數(shù)1,函數(shù)2就能調(diào)用函數(shù)1;函數(shù)2在函數(shù)1下部,那就需要在函數(shù)1里面聲明函數(shù)2,函數(shù)1才能成功調(diào)用函數(shù)2.
函數(shù)可以在調(diào)用函數(shù)的函數(shù)(比如main函數(shù))之前定義,這樣就無需聲明了;
舉例:
int?add(int?x,int?y)?{?return?x+y;?}?//在編譯程序編譯到main的調(diào)用add之處時(shí),由于已經(jīng)編譯過add的函數(shù)了,因此編譯程序已經(jīng)知曉調(diào)用規(guī)則,因此可以省略聲明語句
void?main()?{?int?x=5,y=6,c;?c=add(x,y);?printf("%d\n",c);?}
如果函數(shù)在調(diào)用函數(shù)的函數(shù)之后定義,為了通知編譯程序要調(diào)用函數(shù)的格式,需要在調(diào)用函數(shù)的函數(shù)前添加函數(shù)的聲明。
舉例:
int?add(int?x,int?y);?//函數(shù)聲明也可以簡單地寫成int?add(int,int);通知編譯程序main中調(diào)用add的規(guī)則即可
void?main()?{?int?x=5,y=6,c;?c=add(x,y);?printf("%d\n",c);?}
int?add(int?x,int?y)?{?return?x+y;?}
就是告訴編譯器,這個(gè)函數(shù)已經(jīng)存在,和這個(gè)函數(shù)具體是什么格式的,名稱是什么,返回值是什么,數(shù)據(jù)個(gè)數(shù)和類型分別是什么,以后在用到這個(gè)函數(shù)的時(shí)候編譯器就按照這個(gè)聲明的格式來檢查函數(shù)的使用是否正確
就是告訴編譯器函數(shù)的類型,名稱,使用的參數(shù)的類型。
就是告訴編譯器將要調(diào)用此函數(shù)。
就是告訴編譯器將要調(diào)用此函數(shù)。
就是告訴編譯器將要調(diào)用此函數(shù)。