标题:解释一下C中.h与.Lib的区别
只看楼主
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
已结贴  问题点数:15 回复次数:4 
解释一下C中.h与.Lib的区别
请懂的朋友给解释一下,越详细越好哈,不要复制的,最好谈谈自己的理解。。。。
搜索更多相关主题的帖子: 解释 Lib 
2010-10-06 20:17
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
得分:15 
.h用于编译阶段的审核,如在math.h中有函数声明:
int abs(int);
但是在使用中写为
#include <math.h>
...abs(3,5);
编译器阶段就会检测出错误。

.dll用于运行阶段,如调用SetWindowText()函数等,需要在user32.dll中找到该函数。DLL可以简单认为是一种包含供别人调用的函数和资源的可执行文件。

.lib用于链接阶段,在链接各部分目标文件(通常为.obj)到可执行文件(通常为.exe)过程中,需要在.lib文件中查找动态调用函数(一般为DLL中的函数)的地址信息,此时需要在lib文件中查找,如查找SetWindowText()函数的地址偏移就需要查找user32.lib文件。(.lib也可用于静态链接的内嵌代码)
比如:
你已经在以前的工作中写好了一个专门用于串口通信的模块.那么你就可以把它生成一个LIB
文件.以后的项目还要用串口通信时,直接把LIB文件加入到工程中.不用再写代码.
当然,过一段时间你可能已经忘记了LIB文件中有那些函数和变量,这就是H文件做的事.
在H中把LIB中所有的变量和函数都说明出来,作个备忘.看H文件就知道LIB中有什么内容.
在其它模块中#INCLUDE H文件后就可调用LIB中的东西.
与现成的reg51.h,math.h,stdio.h一样.


到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-06 20:20
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:0 
lib相当于cpp

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-06 20:22
kevin_zh
Rank: 4
来 自:农村
等 级:业余侠客
威 望:1
帖 子:129
专家分:250
注 册:2010-8-14
得分:0 
呃,学习了

"please input a number :\n"
2010-10-07 07:45
gongyaping
Rank: 4
来 自:广东肇庆怀集
等 级:业余侠客
帖 子:174
专家分:257
注 册:2010-8-1
得分:0 
学习勒。
2010-10-07 21:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322121-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.115388 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved