C/C++ 包含头文件就可以的原因?

mekiss 2006-11-18 09:10:05
在C/C++ 包含头文件后,比如说iostream.h 的或是用户自己定义的头文件,在编程序的时候只是包含头文件,也就是只有声明,但是并没有数据定义和实现之类的代码啊,也就是现在的疑惑是为什么只包含声明就可以使用了??????
...全文
353 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2006-11-23
  • 打赏
  • 举报
回复
因为,编译器会默认连接入库函数的lib文件。
bournechen 2006-11-23
  • 打赏
  • 举报
回复
在头文件中定义了,展开至引用文件中是其定义。引用时调用其实现。
lxhtzy 2006-11-23
  • 打赏
  • 举报
回复
连入头文件后编译会之间读取其对应的.obj
jixingzhong 2006-11-18
  • 打赏
  • 举报
回复
1 包含头文件意味着把头文件内容在当前位置展开,那么就是在当前位置进行这些声明
2 函数声明,编译时候就会链接相应的实现,如果是自己实现的方法等,那么这些方法的实现文件必须在当前工程中才会被搜索到。

比如说,
在一个工程中, 如果和 h对应的cpp 没有被包含在工程中,
那么这些声明就不会有效,因为找不到实现文件。
链接时候会报错 ....

如果把 对应的cpp 也包含到工程中, 那么自然是可以找到这些实现的。
ckt 2006-11-18
  • 打赏
  • 举报
回复
具体的实现在该文件中,
编译时编译器会读取头文件,
链接器会把你调用的函数和其他函数代码链接成完成的代码.
所以你直接就可以拉
alan001 2006-11-18
  • 打赏
  • 举报
回复
因为通常我们用键盘输入输出,

所以必然要包含I/O流预编译头文件"iostream.h"或者"iostream";

头文件里,包含勒他支持的操作和函数原型
飞哥 2006-11-18
  • 打赏
  • 举报
回复
包含文件,相当于把该文件的代码放到包含的位置

事实上也就是这样
OOPhaisky 2006-11-18
  • 打赏
  • 举报
回复
在编程序的时候只是包含头文件,也就是只有声明,但是并没有数据定义和实现之类的代码啊,也就是现在的疑惑是为什么只包含声明就可以使用了??????
-------------------------------------------------------------------------------------
编译单个unit的时候,只需要生命就足够了,每个unit会被编译成目标文件(比如.obj文件),然后在链接的时候(即将不同的obj文件联结成一个可执行文件),需要定位到相应的“实体”,这个时候需要定义。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧