Advertisement

关于C语言的编译和执行过程

阅读量:

一、编译执行的过程

C语言源程序结合头文件→经过预编译处理(cpp)→进入编译阶段→进行代码优化→生成汇编代码→执行链接操作→最终形成可执行文件

二、详解各个过程

1、预编译处理:系统读取C语言源程序(以字符流形式输入),并对其中的伪指令(以#开头的命令)及各类符号进行处理;

(1)、宏定义指令#define;

(2)、条件编译指令#ifndef #define #endif;

(3)、头文件包含操作,如#include<stdio.h>等;

(4)、特殊符号,例如在源程序中出现LINE将被解释为当前行号,而FILE则被解释为当前正在被编译的C语言源程序名称;

预编译阶段的核心任务是对源代码实施“替换”操作。通过这一替换过程,可以生成一个不含宏定义、不包含条件编译指令以及没有特殊符号的输出文件。

2、编译阶段

将预编译后生成的输出文件进行语法分析,在确认语法正确的情况下,将其转换为等效的中间表示代码或汇编语言代码。

3、优化阶段

优化工作主要分为两个层面:一方面对代码本身进行改进,例如消除冗余表达式和循环结构优化等;另一方面则与机器架构密切相关。重点在于如何有效利用硬件寄存器存储相关变量值,从而减少对内存访问的频率。

4、汇编过程

汇编过程实质上是将汇编语言翻译成目标机器指令的过程。对于每一个经翻译

全部评论 (0)

还没有任何评论哟~