C++联编机制浅谈

静态联编

  静态联编是指联编工作出现在编译连接阶段,这种联编又称早期联编,它解决了程序中的操作调用与执行该操作代码间的关系。

动态联编

  编译程序在编译阶段并不能确切知道将要调用的函数,只有在程序执行时才能确定将要调用的函数,为此要确切知道该调用的函数,要求联编工作要在程序运行时进行,这种在程序运行时进行联编工作被称为动态联编。

 

为什么会有两种联编?

动态联编的功能明显比静态联编强大,但是从效率的执行来看,静态联编在编译连接阶段就完成决策,而动态联编为了使程序能够在运行阶段惊醒决策,必须采取一些方法来跟踪基类指针或引用指向对象类型,
这增加了额外的处理开销。基于C++知道原则:不要为不适用的特性付出代价,所以程序默认使用静态联编。

 

动态联编常用于C++多态的处理,于虚函数机制息息相关。获取虚函数表的偏移地址,需要在运行时确定。

原文链接: https://www.cnblogs.com/kangyuanxun/archive/2012/03/07/2384336.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++联编机制浅谈

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/43582

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午8:13
下一篇 2023年2月8日 下午8:13

相关推荐