【自省】
自学习编码以来,Coder本人很少去认真去研究一段代码的运行过程,关注更多的是代码的产生结果。但随着知识越学越深,Coder深觉,我们往往会被复杂的集成工具所提供的强大功能所蒙蔽,很多系统软件的运行机制被埋藏,其程序的很多莫名其妙的错误让我们不知所措,面对程序运行时种种性能瓶颈我们望天扶额。
能看得到的是问题的现象,看不到的是问题的本质。所有问题的本质就是软件背后的机理及支撑软件运行的各种平台和工具,如果能够深入了解这些机制,那么解决问题就有了方向,期望能够达到游刃有余、收放自如的境界。
【关于9 3/4车站的提问】
Hello World程序是我们进入计算机世界的九又四分之三车站。但是,面对这样一个简单程序,我们可以清晰明确地回答出一些问题吗:
- 编译器在C程序转换成可执行代码的过程中发生了什么?
- 编译器是怎么做的?
- 程序为什么要被编译器编译了以后才能执行?
今天我们就初步来研究以上问题。Coder这是一个现学现卖的过程,我一边学习着新的知识,一边把新知识组织整理用文字表现出来。今天我们只是简单来了解编译链接的过程,后续我们会继续来探讨装载与库的过程。
【共勉】
俞甲子有句话很受用,“我始终认为对于一个问题比较好的描述方式,是由一个很小很简单的问题或示例入手,层层剥开深入挖掘。”听大师的话,我们先从Hello World着手。
C语言下,Hello World程序是程序入门,是开发环境测试的默认标准,编译运行一气呵成。
#in