关于C语言的编译和执行过程
发布时间
阅读量:
阅读量
一、编译执行的过程
C语言源程序结合头文件→经过预编译处理(cpp)→进入编译阶段→进行代码优化→生成汇编代码→执行链接操作→最终形成可执行文件
二、详解各个过程
1、预编译处理:系统读取C语言源程序(以字符流形式输入),并对其中的伪指令(以#开头的命令)及各类符号进行处理;
(1)、宏定义指令#define;
(2)、条件编译指令#ifndef #define #endif;
(3)、头文件包含操作,如#include<stdio.h>等;
(4)、特殊符号,例如在源程序中出现LINE将被解释为当前行号,而FILE则被解释为当前正在被编译的C语言源程序名称;
预编译阶段的核心任务是对源代码实施“替换”操作。通过这一替换过程,可以生成一个不含宏定义、不包含条件编译指令以及没有特殊符号的输出文件。
2、编译阶段
将预编译后生成的输出文件进行语法分析,在确认语法正确的情况下,将其转换为等效的中间表示代码或汇编语言代码。
3、优化阶段
优化工作主要分为两个层面:一方面对代码本身进行改进,例如消除冗余表达式和循环结构优化等;另一方面则与机器架构密切相关。重点在于如何有效利用硬件寄存器存储相关变量值,从而减少对内存访问的频率。
4、汇编过程
汇编过程实质上是将汇编语言翻译成目标机器指令的过程。对于每一个经翻译
全部评论 (0)
还没有任何评论哟~
