头文件与库文件的区别 您所在的位置:网站首页 gcc和c的区别 头文件与库文件的区别

头文件与库文件的区别

2023-05-22 07:42| 来源: 网络整理| 查看: 265

https://blog.csdn.net/chengfenglee/article/details/112251013

一、头文件

在编程过程中,程序代码往往被拆成很多部分,每部分放在一个独立的源文件中,而不是将所有的代码放在一个源文件中。考虑一个简单的小例子:程序中有两个函数main()和abc()。main()函数位于main.cpp,abc()函数位于abc.cpp,main()函数中调用abc()函数。在编译阶段,由于编译是对单个文件进行编译,所以编译main.cpp时,编译器不知道是否存在abc()函数以及abc()调用是否正确,因此需要头文件辅助。也就是说,在编译命令: cl.exe /c main.cpp 运行时,编译器不知道abc的用法是否正确(因为abc在另一个文件abc.cpp中),只有借助头文件中的函数声明来判断。对main.cpp进行编译时,不会涉及abc.cpp文件,只会涉及main.cpp 和abc.h(因为abc.h被include)文件。

二、库文件

库文件中包含一系列的子程序。例如abc.cpp 源文件中实现了abc()函数,我们假设abc()函数是包含重要算法的函数,我们需要将abc()函数提供给客户使用,但是不希望客户看到算法源代码。为了达到这一目的,我们可以将abc.cpp编译程库文件,库文件是二进制的,在库文件中是看不到原始的源代码的。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。 当然使用库文件的好处不仅仅是对源代码进行保密,使用库文件还可以减少重复编译的时间,增强程序的模块化。将库文件连接到程序中,有两种方式,一种是静态连接库,另一种是动态连接库。

此外还有一些其他写的还不错的博客:C头文件与库文件的区别-古丁高手-ChinaUnix博客http://blog.163.com/zhangmaochu@126/blog/static/37360622201076055449/关于linux下的库文件_High_High的博客-CSDN博客(linux下的库文件)

——————-转载分界线——————– 知友回答:

简单来说:库文件通过头文件向外导出接口。用户通过头文件找到库文件中头文件中有函数的申明,库文件实现函数的定义。 比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函数的实现并链接进这个程序代码段里。 函数实现的代码从而把这段代码链接到用户程序中去。

库文件可以包含头文件,头文件不可包含库文件头文件可视,库文件不可视

知友回答: 从编程的角度讲,通常有静态库文件和动态库文件。windows静态库文件就是.lib文件,动态库文件就是.dll文件。 内容一样,都是将函数封装在一起编译后供自己或他人调用。好处在于编译后的库文件看不到源代码,可保密;同时不会因为不小心修改了函数而出问题,便于维护。两种库的区别在于静态库被调用时直接加载到内存,而动态库再是在需要的时候加载到内存,不使用的时候再从内存释放。

unix系统的静态库文件和动态库文件后缀分别是.a和.so

—–总结头文件可以使用代码库文件里的函数



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有