关于头文件的疑惑

paschen 版主 2012-05-21 12:52:44
假如我包含了一个头文件,该头文件中写了很多函数,但只用到其中一个
生成的最终程序会不会包含那些没有用到的函数??
...全文
169 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2012-05-22
  • 打赏
  • 举报
回复
要不这样说,我把所有函数、类什么的全写在头文件里,但只用到了其中几个,生成的程序代码中包含了没有用到的吗?
paschen 版主 2012-05-22
  • 打赏
  • 举报
回复
懂了,3Q
Saleayas 2012-05-22
  • 打赏
  • 举报
回复
这要看你的 Link 方式。
最终的 PE 文件中是没有的。
除非强制连接!
paschen 版主 2012-05-22
  • 打赏
  • 举报
回复
额,上面那句发错了,明白了。
如果是写在cpp文件里的会不会呢??
paschen 版主 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

Debug下会,Release下不会
[/Quote]

啊??我在VS下Release下会。。
sl51314240 2012-05-22
  • 打赏
  • 举报
回复
Debug下会,Release下不会
qq120848369 2012-05-22
  • 打赏
  • 举报
回复
包含声明没关系, 只要没有调用它们即可, 链接器是不会去找那些没有使用过的函数声明对应的函数定义的.
lkxd2011 2012-05-21
  • 打赏
  • 举报
回复
这个没什么关系吧~~
skdjfsk 2012-05-21
  • 打赏
  • 举报
回复
#include 头文件:头文件里面所有的内容都会被插入到include的位置。
Spy 2012-05-21
  • 打赏
  • 举报
回复
++[Quote=引用 4 楼 的回复:]

头文件里只有函数声明,具体实现在其他文件里,就像你在源文件里声明的函数一样,只有在调用的时候才会展开相应的实现代码
[/Quote]
fox_liucx 2012-05-21
  • 打赏
  • 举报
回复
会有。。。。
Hammer42 2012-05-21
  • 打赏
  • 举报
回复
头文件里只有函数声明,具体实现在其他文件里,就像你在源文件里声明的函数一样,只有在调用的时候才会展开相应的实现代码
xunxun 2012-05-21
  • 打赏
  • 举报
回复
关键是你写了多少实现
laocpp 2012-05-21
  • 打赏
  • 举报
回复
"写了很多函数"是申明了很多函数还是定义了很多函数的函数体?
_Minzey 2012-05-21
  • 打赏
  • 举报
回复
不懂啥意思..
但是你在一个源文件中包含了一个头文件的意思是在编译的时候 #include 这句会被完全展开成头文件里的代码,就像是你写的一样。
paschen 版主 2012-05-21
  • 打赏
  • 举报
回复
如果头文件是我自己写的,并且里面包含了函数的定义(函数体)会不会呢?
即使程序用不到也会被编译出来吗?

64,648

社区成员

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

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