交叉编译器(cross complier)就是在一台机器上运行,但它所产生的可执行代码运行在不同类型的机器上。
翻译阶段由几个步骤组成,组成一个程序的每一(有可能有多个)源文件通过编译过程分别转换成目标代码(object code)。
然后,各个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。
编译过程本身也由几个阶段组成,首先是预处理器。然后解析,判断句中的意思,随后产生目标代码,
目标文件名:unix .o
MS-DOS .obj
在绝大多数机器里,程序将使用一个运行时的堆栈(stack),它用于存储函数的局部变量和返回地址。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程中将一直保留它们的值。
转译字符:
\?
\"
\'
\"
总结
一个c程序的源代码保存在一个或多个源文件中,但一个函数只能完整地出现在同一个源文件中。
把相关函数放在同一个文件内是一个好策略。每个文件都分别编译,产生对应的目标文件。然后,
目标文件被链接在一起,形成可执行程序。编译和最终运行程序的机器有可能相同,也可能不同。
程序必须载入内存中才能执行。在宿主机环境中,这个任务由操作系统完成。在*式环境
中,程序常常永久存储于ROM中。经过初始化的静态变量在程序执行前能获得它们的值。你的程序
执行的起点是main函数。绝大多数环境使用堆栈来存储局部变量和其他数据。