CLL-符號修飾與函數簽名

我們知道,在c++中,函數是可以重載的,也就是說函數名相同,但參數不同。那麼編譯器和鏈接器是怎樣區分兩個同名的函數的呢?由目標文件的三魂七魄(如果不清楚可以看看這邊文章)可以知道,函數名和變量名都是符號(symbol),正是c++的符號修飾(name decoration)機制支持了這種特性。 在c中,現在gcc編譯器,函數名的符號一般都是函數名本身,所以c沒有函數重載這樣的特性。 下面,通過一個
相關文章
相關標籤/搜索