zoukankan      html  css  js  c++  java
  • VC 静态库与动态库(一)介绍

    定义:

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

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

     

    静态库与动态库区别:

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

    优点:

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

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

    缺点:

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

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

     

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

    优点:

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

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

    缺点:

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

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

     

    总结:

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

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

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

  • 相关阅读:
    抽象类于接口
    继承
    分布式爬虫基于scrapy
    nginx wsgi django 建站配置最终版
    scrapy crawlspider内置方法源码
    redis数据的安装以及基本使用方法
    CrawlSpider 用法(页面链接提取解析 例如:下一页)
    请求传参
    日志等级
    代理操作
  • 原文地址:https://www.cnblogs.com/fzxiaoyi/p/12052474.html
Copyright © 2011-2022 走看看