谁清楚 c++多文件 生成时 ,编译器是如何让编译的 然后又是如何连接的

清水迎朝阳
领域专家: C/C++技术领域
2008-11-23 04:53:44
q.h
//
.....

fun.cpp
#include"q.h"

///
主函数中调用

#include "fun.cpp"


main

{

fun()
}

每个程序均无错误 只是在连接时出错, 而且当把fun.cpp 个变量 函数 限定文件作用域 static 成功连接 如果 没有static 是全局变量时 链接时 有多重定义错误 , 问题是 在其他所有的文件中,我都没有重新定义 ,难道编译器会在编译一个文件的时候,会将用到的其他文件的变量函数重新定义一下么 ? 这里不明白


另外, 既然我用static 把 fun()设为 此文件所有域了, 那为什么在主文件中却能调用呢
...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
清水迎朝阳 2008-11-23
  • 打赏
  • 举报
回复

其实关键在于连接器的执行原理 有清楚的么
清水迎朝阳 2008-11-23
  • 打赏
  • 举报
回复


源码绝对正确 包含的东西就是如上那样包含的

可否讲讲C++ primer plus(5TH)第一章里讲过这方面内容 我没有这本书
霍大脚 2008-11-23
  • 打赏
  • 举报
回复
C++ primer plus(5TH)第一章里讲过这方面内容,楼主可以去研究下
BaihowFF 2008-11-23
  • 打赏
  • 举报
回复
给源码吧...要不我们也不知道你在头文件里做什么了...
moliliang 2008-11-23
  • 打赏
  • 举报
回复
这真是一个非常深奥的问题。。。。。。。。

65,211

社区成员

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

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