是否允许C编译器发出编译同一程序的不同机器代码?

是否允许C编译器发出编译同一程序的不同机器代码?,第1张

概述考虑一下情况.我们有一些特定的C编译,一组特定的编译器设置和一个特定的C程序. 我们使用该编译器和那些设置编译特定程序两次,每次都进行“清理编译”. 如果发出的机器代码是相同的(我不是指时间戳和其他花里胡哨,我的意思是只会执行真正的代码),还是允许从一个编译到另一个编译? C标准当然没有说什么来防止这种情况发生.但实际上,编译器通常是确定性的,因此在给定相同输入的情况下,它将产生相同的输出. 真 考虑一下情况.我们有一些特定的C编译器,一组特定的编译器设置和一个特定的C程序.

我们使用该编译器和那些设置编译特定程序两次,每次都进行“清理编译”.

如果发出的机器代码是相同的(我不是指时间戳和其他花里胡哨,我的意思是只会执行真正的代码),还是允许从一个编译到另一个编译?

解决方法 C标准当然没有说什么来防止这种情况发生.但实际上,编译器通常是确定性的,因此在给定相同输入的情况下,它将产生相同的输出.

真正的问题主要是它认为作为其输入的环境的哪些部分 – 有一些似乎假设构建机器的特征反映了目标的特征,并且基于隐含的“输入”改变它们的输出.构建环境而不是明确声明,例如通过编译器标志.也就是说,即使这是相对不寻常的.规范是输出依赖于显式输入(输入文件,命令行标志等)

总结

以上是内存溢出为你收集整理的是否允许C编译器发出编译同一程序的不同机器代码?全部内容,希望文章能够帮你解决是否允许C编译器发出编译同一程序的不同机器代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存