十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
就是指函數(shù)名相同,比如,int
創(chuàng)新互聯(lián)是一家專業(yè)提供余杭企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為余杭眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
func()與int
func(int),
C語言里沒有函數(shù)重載,所以這樣寫是不行的(C++里是可以的)。
答案是:否
c語言中,變量和函數(shù)名稱不允許相同,比如你定義一個(gè)函數(shù)int a();那么你的main函數(shù)中,如果int a=a();則會報(bào)錯(cuò),這是c語言中非常討厭的一點(diǎn),當(dāng)然,反對者可能會說:“容易引起名稱混淆,導(dǎo)致不容易維護(hù)”,這是很牽強(qiáng)的說法,用現(xiàn)在流行的詞匯叫做:強(qiáng)行為c語言的缺點(diǎn)洗白,c語言的這個(gè)限制,極大程度的增加了初學(xué)者,尤其是自學(xué)者的學(xué)習(xí)難度,因?yàn)槌鯇W(xué)者不會考慮變量的含義,通常定義aa,bb,cc這樣更利于快速學(xué)習(xí),但是出來這個(gè)限制,并且不知情的情況下,甚至都不知道在網(wǎng)上如何搜索來解決這個(gè)小問題,所以個(gè)人覺得這是c的不友好之一
可以重名,不過函數(shù)的參數(shù)類型或數(shù)量要不一致,例子如下:
//遞歸求階乘
int calc(int num){
if(num==0){
return 0;
}else{
return num*calc(num-1);
}
}
//遞歸求任意一個(gè)整數(shù)的整數(shù)次方
int calc(int num,int count){
if(num==0){
return 0;
}else if(count == 0){
return 1;
}else{
return num*calc(num,count-1);
}
}
這兩個(gè)函數(shù)方法名稱完全一樣,但是參數(shù)不一樣,這種做法有一個(gè)叫法,叫函數(shù)的重載
這不是兩個(gè)函數(shù),這是一個(gè)函數(shù),extern "C" int listid(int id, OUT *);
中的extren通知編譯器int listid(int id, OUT *)不在本源代碼中實(shí)現(xiàn),
"c"通知編譯器用C調(diào)用方式調(diào)用在另外的一個(gè)源程序的函數(shù),
C語言默認(rèn)的調(diào)用方式就是C調(diào)用 C++就不同了,,所以最好加個(gè)"c"
另:調(diào)用方式規(guī)定了調(diào)用的時(shí)候輸入?yún)?shù)的順序和函數(shù)返回后輸入?yún)?shù)占用的空間由調(diào)用程序釋放還是由函數(shù)釋放。這東西不一定要太懂,知道用"c"去考慮調(diào)用方式就可以了.
參數(shù)不同也是可以的,但是執(zhí)行一定會有錯(cuò)誤,而且應(yīng)該不能出現(xiàn)同名不同參數(shù)的的令一個(gè)函數(shù)。要不連接的時(shí)候就找不到正確的函數(shù)。