头文件中有函数的申明,库文件实现函数的定义。
比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这
个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库
中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序
中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函
数的实现并链接进这个程序代码段里。
函数实现的代码从而把这段代码链接到用户程序中去。
头文件中有函数的申明,库文件实现函数的定义。比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这
个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库
中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序
中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函
数的实现并链接进这个程序代码段里。
总结起来就是,库文件通过头文件向外导出接口。用户通过头文件找到库文件中
函数实现的代码从而把这段代码链接到用户程序中去。
头文件,就是以#include开头后面包含的东东,这个文件是实际存在的,你的程序中包含这个头文件,那么在编译的时候就会把该头文件的所有内容编译进你的程序(有编译预处理的情况例外);比如有#include,在cmath中有sin()这个函数的实现,那么你可以在程序中调用sin()函数,如果不包含cmath,那么编译就会出错;
库文件分几种,一种是资源类型的,就是存放的东西,供外部调用的没有函数,只有变量或类的实体;另一种是有简单的函数供外部调用;还有一种,也是用的比较多的,就是包含一个完整的模块,紧提供一个外部调用的接口,当外部调用该接口就开始运行这个模块,外部几乎就处于休眠状态;
目标文件就是编译过程中产生的,链接起来生成可执行文件的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)