- 什么是 Name Mangling
编程语言组织程序,都有一定的可见范围,比如 Java 的包、C/C++的文件。就像我们平时使用的文件夹一样,有了这些组织机制,变量、函数的命名在一定程度上就可以重复。
但在程序链接时,这些机制多少都要失效一些,就像每个小朋友在家都叫宝宝,到了幼儿园就没办法通过宝宝来区分彼此了。为了解决名字的唯一性,就需要 Name Mangling 技术。
其实说白了就是对名字进行重新编码的一种规则。比如使用 VIM 随便打开一个 ELF 文件,或是链接时,我们有时候可以看到一些类似与下面这样的古怪字符串:
_ZN9NS_QZSOCK10CTcpClient11SendAndRecvEPciRiRjd 这就是经过 Name Mangling 处理后的符号。
