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