VC++6.0编译器是如何编译C语言程序的??

2025-02-25 03:08:09
推荐回答(3个)
回答1:

是一条语句一条语句的翻译

一个编译器包括词法分析、语法分析、语义分析、中间代码的生成、目标代码的生成、代码优化等

其中词法分析的功能是将一个*.c文件读到内存中,然后根据这一大串字符串判断并分割出关键字、字母、标识符等等;
语法分析的功能是根据标准c语言的语法判断这个*.c文件是否存在语法错误;
语义分析的功能是根据标准c语言的语法确定程序的含义;
中间代码的生成是根据源程序生成相应的过度程序;
目标代码的生成是根据中间代码生成相应目标代码(如汇编,vc最终生成的是可执行文件:*.exe);
代码优化是根据生成的目标代码进行优化,比如减少循环次数等等

你所提出的问题,其关键步骤就是语义分析,一般用递归的方法一个语句一个语句的编译

个人意见,仅供参考

回答2:

编译过程如下:
1.预处理阶段,主要是宏替换和库的引入
2.汇编阶段,将1步骤的.c文件通过汇编器生成汇编文件.asm
3.编译阶段,将2步骤的文件通过c编译器,生成目标文件.obj
4.链接阶段,将3步骤的.obj文件通过链接库和其他目标文件,生成可执行文件.exe

回答3:

例子:
#include
void main()
{
int i,sum=0;
for(i=2;i<=100;i++)
if(i%2==0)
sum+=i;
printf("1-100的偶数和为:%d\n",sum);
}