可以重名,不過函數(shù)的參數(shù)類型或數(shù)量要不一致,例子如下:
創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供聯(lián)通服務(wù)器托管 四川大帶寬租用 成都機柜租用 成都服務(wù)器租用。
//遞歸求階乘
int calc(int num){
if(num==0){
return 0;
}else{
return num*calc(num-1);
}
}
//遞歸求任意一個整數(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);
}
}
這兩個函數(shù)方法名稱完全一樣,但是參數(shù)不一樣,這種做法有一個叫法,叫函數(shù)的重載
答案是:否
c語言中,變量和函數(shù)名稱不允許相同,比如你定義一個函數(shù)int a();那么你的main函數(shù)中,如果int a=a();則會報錯,這是c語言中非常討厭的一點,當然,反對者可能會說:“容易引起名稱混淆,導(dǎo)致不容易維護”,這是很牽強的說法,用現(xiàn)在流行的詞匯叫做:強行為c語言的缺點洗白,c語言的這個限制,極大程度的增加了初學(xué)者,尤其是自學(xué)者的學(xué)習(xí)難度,因為初學(xué)者不會考慮變量的含義,通常定義aa,bb,cc這樣更利于快速學(xué)習(xí),但是出來這個限制,并且不知情的情況下,甚至都不知道在網(wǎng)上如何搜索來解決這個小問題,所以個人覺得這是c的不友好之一
這是不能的。C程序中如果同時包含這兩個頭文件的話,就會發(fā)生沖突,鏈接的時候有兩個同名的函數(shù),就會無法鏈接通過的。
你說的這些是C++的函數(shù)重載,C++是可以的,但C語言不支持函數(shù)重載
比如:
void
fun(int
n)
與int
fun(int
n)就是名稱相同,返回類型不同,參數(shù)相同
void
fun(int
n)
與int
fun(int
n,int
s)就是名稱相同,返回類型不同,參數(shù)類型相同個數(shù)不同
int
fun(int
n)
與int
fun(int
n,int
s)
名稱相同,返回類型相同,參數(shù)類型相同個數(shù)不同
所以這些在用C語言編程時都會報錯,就是不行
就是指函數(shù)名相同,比如,int
func()與int
func(int),
C語言里沒有函數(shù)重載,所以這樣寫是不行的(C++里是可以的)。