名字修饰
名字修饰,又译作名字粉碎、名字重整,译自英文name mangling或name decoration,是现代计算机进程设计语言的编译器用于解决由于进程实体的名字必须唯一而导致的问题的一种技术。
它提供了在函数、结构体、类或其它的数据类型的名字中编码附加信息一种方法,用于从编译器中向链接器传递更多语义信息。
该需要产生于进程设计语言允许不同的条目使用相同的标识符,包括它们占据不同的命名空间(典型的命名空间是由一个模块、一个类或显式的namespace指示来定义的)或者有不同的签名(例如函数重载)。
任何由编译器产生的目标代码通常与另一部分的目标代码(产生于同一款或不同款的编译器)通过链接器把它们链接起来。链接器需要一大堆每个进程实体信息。例如正确链接一个函数需要它的名字、参数个数和它们的类型,等等。