定义:

静态库与动态库都属于库,库从本质上来说就是种代码重用的方式。

把需要重复使用的公共代码抽离出来,生成库文件,外部程序只需包含库文件,调用相关接口即可

静态库与动态库区别:

静态库:需要库的.h和.lib文件,程序编译链接时,在链接阶段会把整个静态库打包到程序中,此时静态库就成为了程序的一部份

优点:

和动态库相比不需要带额外.dll,减少程序的依赖

运行速度快,不需要在运行期间动态加载dll

缺点:

程序体积变大,即使只使用库中一部份代码,也需要包含整个静态库

当静态库需要增加和修改代码时,需要重新编译静态库,而且包含静态库的程序也得重新编译

动态库:需要库的.dll文件,程序编译时并没有把动态库编译进来,只包含它需要的函数的引用表,在程序运行时才会加载动态库

优点:

动态库增加和修改代码方便,只要调用的函数名和参数以及返回值没有被修改,包含动态库的程序不需要重新编译

动态库在内存中只会驻留一份,多个进程使用相同动态库使用的是动态库的副本,与静态库相比节约了内存空间

缺点:

需要带.dll文件,增加了程序的依赖

运行期间需要加载dll,降低了程序运行速度

总结:

静态库:牺牲了空间效率,换取了时间效率

动态库:牺牲了时间效率,换取了空间效率

使用哪种库需要看具体需求,没有好坏之分

最新文章

  1. 项目管理_FindBugs的使用
  2. jQuery 遍历函数
  3. 挂载windows共享文件夹
  4. Bootstrap学习笔记系列3-------Bootstrap简单表单显示
  5. 关于OpenCart的一个小建议
  6. gym923B
  7. android webview里获取和设置cookie
  8. 数据库连接池配置 - Oracle,SQL Server,DB2,MYSQL,SQLLITE3
  9. div 布局
  10. HttpWebRequest结合HtmlAgilityPack实现网页form提交
  11. ubuntu后台运行命令行
  12. react-native 布局基础
  13. .net 常用方法
  14. mapbox-gl 开发包dev生成
  15. 实战开发-》融云tp3.2.3
  16. 微信小程序在开发中遇到的问题与解决方法
  17. JAVA_SE基础——37.main方法的详解
  18. Android第四次作业
  19. Python 之 type方法创建类
  20. 怎么样在windows命令下创建一个没有文件名的文件?

热门文章

  1. 一、man、系统工作、系统检测命令
  2. 安装Rtools
  3. Java 并发系列之十三:安全发布
  4. PMP132种工具与技术
  5. vue+elementui+netcore混合开发
  6. 使用Vue Baidu Map对百度地图实现输入框搜索定位
  7. LeetCode1——两数之和
  8. vue+element 动态表单验证
  9. Zabbix 监控阿里云RDS
  10. A Pattern Language for Parallel Application Programming