【发布时间】:2014-04-21 23:08:19
【问题描述】:
我最近开始学习如何编程,我发现这件事很奇怪: 为什么 gcc 会加倍努力将 c 代码编译为汇编代码,然后再编译为机器代码? 直接编译成机器码不是同样合理吗?我知道,例如MS c 编译器会这样做,那么 gcc 的行为是什么原因呢?
【问题讨论】:
-
"I know that e.g. the MS c Compiler does this"- 你确定吗? -
正如 Jonathon 暗示的那样,您对 Microsoft 编译器的假设是无效的。如果您有兴趣了解编译和链接的过程,我建议this series of blog posts。具体来说,this post 解释了前端编译器如何将 C++ 源代码解析为中间汇编语言,然后由后端编译为机器语言。
-
我真的不明白这个问题是如何“主要基于意见”的。这是一个技术问题。
标签: gcc assembly compiler-construction