浅谈C++联编机制

来源:互联网 发布:英文软件汉化 编辑:程序博客网 时间:2024/05/17 08:40

静态联编

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

动态联编

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


为什么会有两种联编?

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


动态联编常用于C++多态的处理,于虚函数机制息息相关。
原创粉丝点击