社区
C++ 语言
帖子详情
关于.h文件和.cpp文件的问题,急!!!
anqingxuexi
2009-12-20 06:35:51
我在.h文件中声明一个函数,在.cpp文件中实现该函数。在主调函数中包含.h文件,那么在主调函数中就可以用该函数。我想问的是,主调函数中怎么根据.h文件找到.cpp文件,编译器具体是做了什么?谢谢!
...全文
138
13
打赏
收藏
关于.h文件和.cpp文件的问题,急!!!
我在.h文件中声明一个函数,在.cpp文件中实现该函数。在主调函数中包含.h文件,那么在主调函数中就可以用该函数。我想问的是,主调函数中怎么根据.h文件找到.cpp文件,编译器具体是做了什么?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haierpro
2009-12-21
打赏
举报
回复
.h文件只是告诉主调函数所在文件,被调用函数已经定义了,只是在别的文件定义的,这样编译器就让主调函数所在文件能编译通过。
而使主调函数真正能调用被调函数是在链接阶段,链接器会到其他所有的目标文件和库的函数表里查找被调函数,如果所有的目标文件和库都查完了,也没找到被调函数的定义,那么链接器才会认为被调函数未定义,然后就报错。
cir2633
2009-12-21
打赏
举报
回复
正常情况下,应该是先compile再link
猫已经找不回了
2009-12-21
打赏
举报
回复
http://blog.csdn.net/hairetz/archive/2009/10/10/4649320.aspx
看此文
liubuweiright
2009-12-21
打赏
举报
回复
学习。。。
anqingxuexi
2009-12-21
打赏
举报
回复
10楼正解,谢谢大家!
sallan
2009-12-20
打赏
举报
回复
mark
dskit
2009-12-20
打赏
举报
回复
[Quote=引用 6 楼 anqingxuexi 的回复:]
引用 2 楼 mstlq 的回复:
找函数入口?
那不是编译器做的事情,那是链接器做的事情
对的,是连接器的工作,那连接器是怎么工作的,它是根据.h文件中的函数名来找的吗?
[/Quote]
.cpp文件时单独的编译单元,编译完成后为.o/.obj, 然后再由link 确定函数的入口地址,所也说如果函数没有定义会在链接期报错。
anqingxuexi
2009-12-20
打赏
举报
回复
[Quote=引用 2 楼 mstlq 的回复:]
找函数入口?
那不是编译器做的事情,那是链接器做的事情
[/Quote]
对的,是连接器的工作,那连接器是怎么工作的,它是根据.h文件中的函数名来找的吗?
alwjuq
2009-12-20
打赏
举报
回复
学习了...
sduxiaoxiang
2009-12-20
打赏
举报
回复
link的事
hlyces
2009-12-20
打赏
举报
回复
1 、2 楼正解
学习
mstlq
2009-12-20
打赏
举报
回复
找函数入口?
那不是编译器做的事情,那是链接器做的事情
昵称很不好取
2009-12-20
打赏
举报
回复
如果你没实现该函数,就会提示链接错误,这话对楼主有用~~
如何理解C++中的.h
文件
和.
cpp
文件
如何理解C++中的.h
文件
和.
cpp
文件
一、源
文件
如何根据#include来关联头
文件
二、头
文件
如何来关联源
文件
三、声明与定义的区分:综上所诉 建立一个以类为名字的XX.h
文件
,声明类,再建立一个相同名字的XX.
cpp
文件
(要#include “XX.h”),实现类中的函数, 在有main 函数的.
cpp
里声明函数,建一个与函数名一样的.
cpp
文件
,实现该函数;并且要 #include “XX.h” 一、源
文件
如何根据#include来关联头
文件
1.系统自带的头
文件
用尖括号括起来,这样编译器会在系
C++——如何理解.h
文件
和.
cpp
文件
建立一个以类为名字的XX.h
文件
,声明类,再建立一个相同名字的XX.
cpp
文件
(要#include “XX.h”),实现类中的函数, 在有main 函数的.
cpp
里声明函数,建一个与函数名一样的.
cpp
文件
,实现该函数;并且要 #include “XX.h” 一、源
文件
如何根据#include来关联头
文件
系统自带的头
文件
用尖括号括起来,这样编译器会在系统
文件
目录下查找。 #include <...
头
文件
(.h) 和实现
文件
(.
cpp
)区别
简单讲,一个Package就是由同名的.h和.
cpp
文件
组成。当然可以少其中任意一个
文件
: 只有.h
文件
的Package可以是接口或模板(template)的定义; 只有.
cpp
文件
的Package可以是一个程序的入口。 .
cpp
是C++
文件
的扩展名,.h主要是进行函数定义的,类中函数的声明和调用是在.
cpp
中的,.h
文件
主要是把函数进行封装,在写很多代码的时候,用上.h有很好的作用,这时候我们只要给对方公司*.h
文件
就行了,这样既提供了必要的信息,又保护了我们的核心代码。在.
cpp
中对.h
文件
进行..
C++中的 .h 和 .
cpp
详解
通俗解释:.h和.
cpp
差不多就像书和目录的关系吧,目录中对书中的章节和内容进行简单表示,真正的实现是在书里面的。 一般的数据,数据结构,接口,还有类的定义放在.h
文件
中,可以叫他们头
文件
,可以#include 到别的
文件
中。功能实现一般都放在具体的.
cpp
文件
中,这样方便
文件
管理,节约时间,提高效率。 你完全可以把功能实现一并放在.h
文件
中,也可以#include一个.
cpp
文件
到另一个源
文件
中...
C++中*.h和*.
cpp
文件
的编译
转自博客:(https://blog.csdn.net/u012617944/article/details/78405686) 一、C++编译模式 通常,在一个C++程序中,只包含两类
文件
——.
cpp
文件
和.h
文件
。其中,.
cpp
文件
被称作C++源
文件
,里面放的都是C++的源代码;而.h
文件
则被称作C++头
文件
,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate co...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章