| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:关于include指令的问题
只看楼主 加入收藏
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
结帖率:86.21%
收藏
已结贴  问题点数:5 回复次数:9 
关于include指令的问题
当用include指令将某一个头文件包含到源文件中后,编译程序的时候,头文件中所有的函数原型所对应的函数实现是不是都要被编译?这不是加大了编译时间么?能不能编译器只编译我所调用的函数呢? 谢谢,如果什么概念我没弄懂,请指点,真心求教。谢谢
搜索更多相关主题的帖子: 概念 include 编译器 源文件 
2012-11-04 11:08
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
现在的编译器都是只编译需要的罢 不信你多引用几个头文件试试

而且 就算是都编译 实际用时也不会太大 C总的来说还是比较小型的东西
2012-11-04 11:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
是用到才链接的。对旧式联编为一体文件的程序来说,会把所有用到的函数都包装在一起,新式的使用运行时库,是不需要链接那些函数的。实际链接的函数,并非你在源代码中写上#include的那几个,你不知道#include之中又#include了多少,一个库函数内部到底调用了多少另外的库函数,也是不清楚的。不过,一般不需要担心这个问题,没意义,因为如果你的程序真需要那么多复杂的代码,它必然应该庞大,没那么复杂,自然会小。

授人以渔,不授人以鱼。
2012-11-04 11:35
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:1 
长知识了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-04 12:27
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
回复 3楼 TonyDeng
有点 超出我的知识范围了。。。。。。
2012-11-04 12:36
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
回复 3楼 TonyDeng
刚才对你所谈到到的库概念了解了下,能再问几个问题么?
1.如果是静态链接库,则库文件中所包含的函数可执行代码是不是都是机器语言?
2.如果是动态链接库,则库文件中所包含的函数可执行代码是不是都是机器语言?
3.现在的VC中的C库函数,是不是都是采用的动态链接?因为我发现现在的源文件中都没有#pragma comment...指令。

问题可能有点多了,麻烦了。谢了
2012-11-04 13:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
现在的VC,都使用动态库的,总是附带msvc*.dll运行库一起发行。你安装软件,会发现系统中被置入了这些库文件,而且VC的版本不同,这些文件的名字也不同。无论是.EXE和.DLL,本质上是一样的可执行文件,一般是由机器语言构成的(也可含有数据、资源,不全是机器码)。

授人以渔,不授人以鱼。
2012-11-04 14:23
xiaowu88910
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-10-27
收藏
得分:1 
#include 预处理,编译的时候只是将预处理的东西告知环境,不做其他内存分配,编译等等的活,相当于给了一个链接,后面编译的时候VC环境会根据自己需要去找到对应包含的函数编译
2012-11-04 14:31
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
回复 7楼 TonyDeng
版主 能不能教我写个静态链接库呀   我怎么写 经过编译后,都不能找到.lib文件  弄了一个下午了  有点抓狂了  麻烦了  就写一个求两个数和的函数
2012-11-04 17:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2012-11-04 21:12
快速回复:关于include指令的问题
数据加载中...
 
   



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

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