求大一学c语言学不太懂大佬回答

求大佬解答这个地方为啥出错了 有点急…

printf(" 学号 姓名 寝室号 电话号码 高数A 物理 高数B VF 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分\n"); printf(" 学号 姓名 寝室号 电话号码 高数A 物理 高数B VF 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分\n"); s[i]=sum; // 第一个数组用于数组间信息操作 printf(" 学号 姓名 寝室号 电话号码 高数A 物理 高数B VF 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分\n");
1. 预处理:负责执行C语言中的#include, #if, #else 等预处理指令。注意,这里是去执行这些预处理指令。这些预处理指令的作用是根据你的系统环境配凑出最终版的源代码。

2. 词法分析:把你定义的函数名、变量名、预留的关键字等抽象化,用一个符号来代替,方便编译程序处理。例如上图中的main, return, printf等单词,都被看作一个符号,转换成M, R, P。在这个过程中,会检查你的变量名、函数名名称是否正确。

3. 语法分析:经过词法分析处理之后,程序代码已经变成一堆符号了,例如 I S T F ... M I R P(放心,人已经不认识了,但是计算机能认识)。这时的符号是打散的,语法分析负责把这些符号按照一定的结构组织起来,形成一个抽象语法树(这个结构跟你写的程序代码的结构是对应起来的)。

4. 语义分析:当构造出这样一个树的结构之后,编译就就会检查语法是否正确,并且去扫描这棵树。根据这棵树的结构,生成中间指令了。这个中间指令已经非常接近汇编。中间指令跟汇编还是有区别的,因为不同厂家的CPU指令有所不同,所以还要根据不同厂家的CPU指令集,把这个中间指令转换成汇编。

5. 优化:因为程序员有时代码写的不太好,会导致一些多余的操作,或者效率低的指令。优化过程可以找出这些毛病,自动替换成更好的指令。

6. 链接:以上过程只编译了一个模块,一个大型程序往往包含好多个模块。最后的链接过程负责把所有模块组装起来,构造出最后可以执行的程序。

我要回帖

更多关于 求大佬 的文章

 

随机推荐