名字修飾

名字修飾 （ name decoration ） ， 也稱爲名字重整 、 名字改編 （ name mangling ） ， 是現代計算機程序設計語言的編譯器用於解決由於程序實體的名字必須唯一而導致的問題的一種技術 。 它提供了在函數 、 結構體 、 類或其它的數據類型的名字中編碼附加信息一種方法 ， 用於從編譯器中向鏈接器傳遞更多語義信息 。 該需求產生於程序設計語言允許不同的條目使用相同的標識符 ， 包括它們佔據不同的命名空間 （ 典型的命名空間是由一個模塊 、 一個類或顯式的namespace指示來定義的 ） 或者有不同的簽名 （ 例如函數重載 ） 。 任何由編譯器產生的目標代碼通常與另一部分的目標代碼 （ 產生於同一款或不同款的編譯器 ） 通過鏈接器把它們鏈接起來 。 鏈接器需要一大堆每個程序實體信息 。 例如正確鏈接一個函數需要它的名字 、 參數個數和它們的類型 ， 等等 。