请教编译的顺序

CCjiajia101 2004-12-11 09:44:44
有.c文件
main.c(主函数文件,其中#include a.h,b.h,c.h,d.h)
a.c(#include a.h)
b.c(#include b.h)
有.h文件
a.h
b.h
c.h
d.h
------------
当它执行编译的时候,是如何编译的?那一部分先编译,那一部分后编译?
...全文
178 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bread_0053 2004-12-12
  • 打赏
  • 举报
回复
mark
Flood1984 2004-12-12
  • 打赏
  • 举报
回复
也不是编译的时候就不分先后,
比如一个结构体的定义应该放在使用的前面,或者至少在使用前应有他的声明
zhoory 2004-12-11
  • 打赏
  • 举报
回复
应该是按照说明的顺序来扩展头文件,不过顺序不会影响程序的正常编译和运行》
sharkhuang 2004-12-11
  • 打赏
  • 举报
回复
预编译吧头文件展开。编程顺序无所谓
piaozi2003 2004-12-11
  • 打赏
  • 举报
回复
无所谓,编译时会把a.h和b.h中的所有内容拷贝一份放在main的头部,所以这里的顺序
没有什么关系。关键是链接时
要有与头文件相关连的库文件(obj),如果各个obj文件中的变量有相互引用的话,顺序则很重要了。
peng22277 2004-12-11
  • 打赏
  • 举报
回复
楼上的意思就是说,a.h和b.h在主函数文件里放的顺序可以对调,我的理解对不?
piaozi2003 2004-12-11
  • 打赏
  • 举报
回复
链接顺序准则:定义一个符号的库出现在引用这个符号的目标文件之前,则引用不能被解析,链结会失败!

只要变量都有声明,编译顺序不重要,关键是链接的顺序,需要根据你自己文件中变量的定义出现顺序来排列!
bingbing1981 2004-12-11
  • 打赏
  • 举报
回复
up
jitian81411 2004-12-11
  • 打赏
  • 举报
回复
帮你顶一下!
CCjiajia101 2004-12-11
  • 打赏
  • 举报
回复
谢谢
michaellby 2004-12-11
  • 打赏
  • 举报
回复
帮你顶一下!

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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