基本概念
环境
翻译环境:源代码被转换为可执行的机器代码。
执行环境:用于实际执行代码。
嵌入式系统中即独立环境,不存在操作系统的环境。
翻译过程
组成程序的多个源文件通过编译过程分别转换成目标代码,各目标文件由链接器捆绑在一起,形成单一完整的可执行程序。链接器同时引入标准C函数库中被调用的函数,也可以搜索个人程序库,将需要的程序链接到程序当中。
编译
编译流程由多阶段完成
- 预处理器预处理。在源代码上执行文本操作,比如参数赋值,函数声明等;
- 解析:判断语句意义。源文件经过解析后生成目标代码。目标代码是机器指令的初步形式,用于程序的实现。
- 优化:进一步处理目标代码,优化效率。
执行
- 程序载入到内存中。赋予未存储在堆栈中的尚未初始化的变量初始值,并将可执行代码植入到只读内存ROM中。
- 链接启动程序与程序。负责收入命名行参数,随后调用main函数。
- 正式执行。程序将使用一个运行时堆栈stack,用于存储函数的局部变量和返回地址。程序同时可以使用静态内存,其中的数据将会一直保留值。
语法规则
函数定义需要执行的工作,声明描述函数和函数将要操作的数据类型。