【发布时间】:2014-02-12 19:29:24
【问题描述】:
我正在寻找有关“C 程序如何工作”的博客文章一个月。他们中的大多数人都喜欢
- 编译器做这些事情
- 链接器做这些事情
- 程序被放入内存;以及堆栈、堆等。
我想我会首先阅读有关编译器如何工作以了解程序进入机器的流程。龙书似乎是普遍的首选。但说实话,它太密集了。我现在还不够好,无法经历这一切。
所以我开始阅读有关硬件的信息。但也有,他们解释了总线、I/O 信号、内存结构、编写缓存友好的代码等。但没有合适的例子。
但我仍然无法满足自己或无法完全想象这个过程。
2 小时前我决定问这个问题。(因为我害怕它可能对 SO 社区、离题问题或其他可否决的类别没有用处)并且我没有找到任何与这正是。有一个关于“编译器如何编译”的问题,但答案表明这个问题太宽泛了。
我的问题是这样的:
我想深入了解 C 程序是如何工作的。如果您不能明确告诉我,请将我重定向到可以给我答案的其他网站上的一本书或另一篇文章。
我在这里,直到我得到回应。如果您对这篇文章有任何建议,请告诉我。而且它不是我的母语,所以请把我所有的句子都当成温柔和礼貌。
谢谢。
更新:
除了接受的答案外,还有一些非常好的链接和建议,它们给出了部分答案或进一步理解我想要理解的内容的方法。
【问题讨论】:
-
一定是黑魔法!
-
那么这里的魔术师一定可以给我解释一下诀窍:)
-
这是一个有用的问题,很高兴您提出这个问题。太多的初学者忽略了事情是如何运作的。顺便说一句,“Hello”和“World”不会是来自词法分析器 POV 的标记。
-
@humble_fool:我不是说你应该改变它。你问了这个问题,我不希望你已经知道答案。 :)
-
"我无法继续这样的编程" - 请不要太认真,尤其是如果你一直在学习CS / 编程仅 2 年。我敢打赌,大多数程序员不知道这个问题的一半答案。您甚至想知道这很好,只是碰巧您的问题很复杂。不要仅仅因为可能需要相当长的时间来学习并有信心理解整个过程,就认为这是你的失败。