更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

C语言面试:什么是动态链接与静态链接?

  • 发布:C++培训
  • 来源:求职指导
  • 时间:2020-07-16 15:26

1、什么是静态链接?

静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。

链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。

这里的库指的是静态链接库,Windows下以.lib为后缀,Linux下以.a为后缀。

2、什么是动态链接?

动态链接(Dynamic Linking),把链接这个过程推迟到了运行时再进行,在可执行文件装载时或运行时,由操作系统的装载程序加载库。

这里的库指的是动态链接库,Windows下以.dll为后缀,Linux下以.so为后缀。

值得一提的是,在Windows下的动态链接也可以用到.lib为后缀的文件,但这里的.lib文件叫做导入库,是由.dll文件生成的。

3、静态链接与动态链接的优缺点?

(1)静态链接的优缺点:

优点:

代码装载速度快,执行速度略比动态链接库快;

只需保证在开发者的计算机中有正确的.lib文件,在以二进制形式发布程序时不需考虑在用户的计算机上.lib文件是否存在及版本问题。

缺点:

使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费。

(2)动态链接的优缺点:

优点:

生成的可执行文件较静态链接生成的可执行文件小;

适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试;

不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;

DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;

缺点:

使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息;

速度比静态链接慢;

静态、动态链接实验

以上就是关于动态链接与静态链接的解答,以及静态链接与动态链接的有缺点,如果大家还有更好的学习方法请一起探讨,谢谢!

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C/C++面试中常见库函数实现
下一篇:C语言面试:说一说C语言和指针的本质

C/C++面试中常见库函数实现

入门C/C++,这十个易错点及常用小技巧先学起来~

想要学好c语言应该注意哪些?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省