C语言编译器会编译改变过的代码,而不会编译没有改动的代码。 我想知道它是怎么判断程序是否有呗修改过的

可能是时间,希望能够详细点,可能很多人也不懂... 可能是时间,希望能够详细点,可能很多人也不懂 展开
 我来答
cdyzxy
2013-02-03 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3550万
展开全部
编译器要记录你的编译生成文件,比如obj、exe等的生成日期,发现与相关的文件如.c源文件、obj等日期旧时则选择对此部分重新编译。
特别地,它记录所有相关文件,比如你新修改了某头文件.h,编译系统会逐一比较所有使用这个.h文件的编译结果,如果发现时间旧了就重新编译它们。
追问
这个我大概懂了,可以编译器是怎么生成.obj的列表的额?
我新增加一个模块test.c, test.h, 编译器是怎么知道要去生成test.obj的?
追答
如果你是在集成环境中添加的,集成环境会自动为你的c程序编译生成若干行编译控制语句,并在编译初期扫描你的c程序用到哪些h文件。
如果你用类似Linux编译环境的那种命令行方式,你还必须手动在make文件中写上这些控制行才行。
集成环境实际上是自动为你写make脚本了,编译时还是要用命令行方式调用编译器。
风若远去何人留
推荐于2017-10-30 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450099
专业C/C++软件开发

向TA提问 私信TA
展开全部
其实说起来很简单,用的是一个很笨的规则.
每个文件都有它的修改时间,
每次编译的时候,会检查目标文件的修改时间,和源文件/头文件修改时间.
如果源文件修改时间在目标文件修改时间之后,则编译该源文件.
如果头文件修改时间在目标文件修改时间之后,则编译所有引用该头文件的源文件.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dddce5561
2013-03-14 · TA获得超过3303个赞
知道小有建树答主
回答量:1.3万
采纳率:0%
帮助的人:3096万
展开全部
要记录你的编译器生成的文件之日起,如OBJ,EXE生成的编译器发现相关的文件,如C源文件,老obj的日期选择这部分重新编译。 特别是,它记录了所有相关的文件,例如,你了一个新H头文件,生成系统将通过横向比较。 h文件编译的结果,如果我们找到了老的时候重新编译它们。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dulading
2013-02-01 · TA获得超过268个赞
知道小有建树答主
回答量:65
采纳率:0%
帮助的人:98.4万
展开全部
检测源文件的改动时间和.o的生成时间,如果.o的生成时间比源文件的改动时间新,则不再重新编译,若旧,则重新编译
追问
.o文件编译完成后被删掉吧,估计是.obj文件吧,因为.obj文件时不会被删掉的,编译时也是去编译.obj文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bmw511
2013-04-11 · TA获得超过3888个赞
知道大有可为答主
回答量:8161
采纳率:28%
帮助的人:816万
展开全部
你可以打入菜单栏中的“设置”项,在大选前编译的代码,然后设置,可以运行。通过使用下面的代码调试提示检查。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式