不可以的,c語言翻譯成匯編,函數名中不帶參數的信息,但是c++翻譯成匯編后,每一個函數的名字除了包含了函數名,還包含了函數的參數信息

目前成都創(chuàng)新互聯公司已為上1000家的企業(yè)提供了網站建設、域名、虛擬主機、成都網站托管、企業(yè)網站設計、西豐網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
類成員函數名相同,參數表不同,是成員函數重載的一種表現。但重載并不限于這一種情況。
對于類成員函數,還存在一種const重載,即同名同參數列表的函數,一個有const標識,另外一個沒有。調用規(guī)則為,常對象會調用const重載,而非常對象會調用不帶const的重載。
除此外,重載并不僅限于類的成員函數,不歸屬于類的函數,包括全局函數和靜態(tài)函數,所有函數都可以重載,即函數名相同,參數表不同。一個極端的例子,主函數是可以重載的,根據是否有命令行參數,主函數可以重載為int main(),和int main(int, char **)兩種形式。
同一程序里,不同函數的形參可以一用。只是同一函數的形參不能相同(C語言里是這樣的),如void fun(int a,int b),void funb(int a,int b);這樣定義都是可以的。;但是在C++里面,有函數的重載,相同的函數名都可以有相同的形參。如 int func(int a,int b), int func(int a,int b,int c);
這不是兩個函數,這是一個函數,extern "C" int listid(int id, OUT *);
中的extren通知編譯器int listid(int id, OUT *)不在本源代碼中實現,
"c"通知編譯器用C調用方式調用在另外的一個源程序的函數,
C語言默認的調用方式就是C調用 C++就不同了,,所以最好加個"c"
另:調用方式規(guī)定了調用的時候輸入參數的順序和函數返回后輸入參數占用的空間由調用程序釋放還是由函數釋放。這東西不一定要太懂,知道用"c"去考慮調用方式就可以了.
參數不同也是可以的,但是執(zhí)行一定會有錯誤,而且應該不能出現同名不同參數的的令一個函數。要不連接的時候就找不到正確的函數。
c語言沒有重載,c++有。
可以使用字符串傳遞原值和目標值,增加類型定義參數。
int template(char *dst, char *src,int type)
{
int i_aa=0;
double d_bb=0.0L;
switch(type){
case 0: //整型
i_aa = atof(src);
i_aa = i_aa * 10;
sprintf(dst,"%d",i_aa);
break;
case 1: //浮點型
d_bb = atof(src);
d_bb = d_bb - 0.05;
sprintf(dst,"%.2lf",d_bb);
break;
case 2: //字符串
sprintf(dst,"this is %s",src);
break;
default:
return src;
}
return dst;
}
函數外再處理dst了。注意長度定義。
你的這種重載方式不對,如果你仔細去看看重載的定義,你就會發(fā)現只是類型不同的函數參數重載是不好實現的,編譯器不能夠識別你調用的是哪一個函數。函數的重載可以傳遞的參數個數不一致,函數返回值不一致,但是對于有相同參數,參數類型不同這種重載一般是不能實現的。
網頁題目:c語言同名函數不同參數,c語言同名函數不同參數怎么求
URL地址:http://chinadenli.net/article46/dsgsgeg.html
成都網站建設公司_創(chuàng)新互聯,為您提供自適應網站、服務器托管、網頁設計公司、標簽優(yōu)化、面包屑導航、外貿網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯