你說的這些是C++的函數(shù)重載,C++是可以的,但C語言不支持函數(shù)重載
為企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站優(yōu)化、營銷型網(wǎng)站、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!
比如:
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語言編程時都會報錯,就是不行
答案是:否
c語言中,變量和函數(shù)名稱不允許相同,比如你定義一個函數(shù)int a();那么你的main函數(shù)中,如果int a=a();則會報錯,這是c語言中非常討厭的一點,當然,反對者可能會說:“容易引起名稱混淆,導致不容易維護”,這是很牽強的說法,用現(xiàn)在流行的詞匯叫做:強行為c語言的缺點洗白,c語言的這個限制,極大程度的增加了初學者,尤其是自學者的學習難度,因為初學者不會考慮變量的含義,通常定義aa,bb,cc這樣更利于快速學習,但是出來這個限制,并且不知情的情況下,甚至都不知道在網(wǎng)上如何搜索來解決這個小問題,所以個人覺得這是c的不友好之一
這是不能的。C程序中如果同時包含這兩個頭文件的話,就會發(fā)生沖突,鏈接的時候有兩個同名的函數(shù),就會無法鏈接通過的。
可以重名,不過函數(shù)的參數(shù)類型或數(shù)量要不一致,例子如下:
//遞歸求階乘
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ù)的重載
不行。自定義函數(shù)名可以與庫函數(shù)名重名,且優(yōu)先選擇自定義函數(shù),但不能與代碼變量名重名。但自定義函數(shù)中的代碼可以用與這個函數(shù)名相同的變量名。早期的編譯器是這樣,現(xiàn)在與C++兼容的編譯器如何處理此事,沒試過。
本文標題:c語言不能重名函數(shù) C語言重命名
鏈接地址:http://sd-ha.com/article44/hjdhhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、做網(wǎng)站、關(guān)鍵詞優(yōu)化、微信小程序、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)