分类: C/C++
2007-10-20 14:55:26
Ø 环境
包括翻译环境(translation environment)和执行环境(execution environment)。前者是将源代码转换为可执行的机器指令的环境;后者用于实际执行代码。两种环境不必在同一个软硬件平台上,例如交叉编译(cross-compile)。
1.翻译过程:
上图表示了编译的基本过程,事实上,编译器还会用预处理器(preprocessor)来处理源代码,在源代码上执行一些文本操作如用实际值代替由#define定义的符号,读入#include包含的头文件等等。此外,如果在编译时加入优化选项,优化器(optimizer)还会对目标代码按一定规则进行优化处理,使它效率更高。
2.执行
程序载入内存并开始执行,大多数机器里,程序将使用一个运行时堆栈(stack),用于存储函数的局部变量和返回地址。
程序正常终止就是main函数返回,或是有些程序执行了exit。