静态对象的名称调整

Name mangaling of static objects

本文关键字:调整 对象 静态      更新时间:2023-10-16

我在C++中遇到了这篇关于动态链接的文章。

我们可以创建一个C++工厂,它将返回我们感兴趣的类的对象。另外,我们应该在工厂的文件范围内创建一个静态对象,以便可以使用 dlsym() .(文章建议静态对象不会被命名破坏。

为什么静态对象没有被命名破坏?

名称重整是为了帮助解决重载的函数名称而发明的。您可以定义多个具有相同名称的函数,仅在其参数的计数和类型上有所不同。名称重整允许链接器将此类函数解析到代码中的正确位置。

与函数名称不同,全局命名空间中静态对象的名称不能重载,因此不需要对其进行修改。事实上,全局命名空间之外的对象的名称被篡改了。