为了代码的共享和可重用,将一些需要反复使用的代码制作成库文件,有两种类型的库文件:静态库和动态库。
静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。
使用静态库文件,在链接过程中,将库内的代码完整进行拷贝复制到程序中,生成EXE可执行文件,优点是,EXE可以脱离环境执行,(一次编译,处处执行),因为已包含所有的lib代码。缺点是,可扩展性差,当lib功能扩展之后,需要重新编译链接EXE文件。以及多次使用lib就会有多分冗余的拷贝。