c语言函数重名问题
問(wèn)題:linux下程序鏈接動(dòng)態(tài)c庫(kù)總是失敗,提示庫(kù)中的幾個(gè)函數(shù)出現(xiàn)問(wèn)題。苦找無(wú)果,最后發(fā)現(xiàn)原因——庫(kù)內(nèi)兩個(gè)c函數(shù)重名。
結(jié)論:最好不要重名,但可以通過(guò)一些限制避免這個(gè)問(wèn)題。
提問(wèn):c語(yǔ)言 可以函數(shù)重載嗎?
answer:可以實(shí)現(xiàn)。我參考了幾種說(shuō)法。
1,c語(yǔ)言不支持函數(shù)重載。同一作用區(qū)域不可以有函數(shù)重名,但不同作用區(qū)域中允許函數(shù)重名。不同作用區(qū)域可以通過(guò)在不同文件中使用static實(shí)現(xiàn)。
2,實(shí)現(xiàn) C 的函數(shù)重載呢,比較通用的做法是利用 C 的可變參數(shù)va_args。
對(duì)比:體現(xiàn)了c++的封裝的特點(diǎn),c++可以實(shí)現(xiàn)函數(shù)重載,應(yīng)用程序的調(diào)用方式是需要指明函數(shù)的namespace。其實(shí)編譯的時(shí)候?qū)χ剌d的函數(shù)名做了修改,根據(jù)修改的函數(shù)名和參數(shù)形式進(jìn)行調(diào)用。
參考1
參考2——c語(yǔ)言中函數(shù)重名
參考3——如何實(shí)現(xiàn) C 的函數(shù)重載
總結(jié)
- 上一篇: 输出上下对称的星型
- 下一篇: 操作Checkbox标签