大编译错误及解析.ppt_第1页
大编译错误及解析.ppt_第2页
大编译错误及解析.ppt_第3页
大编译错误及解析.ppt_第4页
大编译错误及解析.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

十大编译错误及解析,错误(Error) Statement missing; Declaration syntax error Undefined symbolxxx Misplaced else Compound statement missing Redeclaration of“xxx” Constant expression required For statement missing; Too few parameter in call toxxx Case statement missing: Lvalue repuired Divided error 或 division by zero 警告(warning) Code has no effect 。,Statement missing ;,单词解释: Statement:steitmnt n. 【计算机】语句,计算机程序指令 miss:mis v. 漏掉遗失,Statement missing ;,解析:语句缺少分号;编译程序发现一表达式语句后面没有分号。注意是表达式语句。 另外一般缺少分号的位置在提示位置的前一语句,因为C语言允许一条语句写在多行,所以编译器检查到当前行时并无法确定该条语句的“;”是否缺失,因为可能“;”被写在了下一行,所以它检查到下一行时发现没有以“;”结尾才会报错。,错误范例: void main() int a; a=3 printf(“%d”,a); ,报错位置,Declaration syntax error,Declaration:deklrein n. 声明 syntax:sintks n. 句法;句法规则,Declaration syntax error,解析:声明出现语法错误;在源文件中,某个声明丢失了某些符号或有多余的符号。注意是声明部分,而一般情况下也是在声明部分末尾未加分号“ ;”。,错误范例: void main() int a a=3; printf(“%d”,a); ,报错位置,Undefined symbol xxx,Undefined:ndifaind adj. 不明确的,未下定义的 symbol:simbl n. 符号, 记号, 代号,Undefined symbol xxx,解析:符号xxx未定义;标识符无定义, 变量都是要先定义后使用的,若未定义就使用就会出现该错误,也可能是有定义,但引用处有拼写错误(即与定义的名字不相符)引起。,错误范例1: void main() a=3; printf(“%d”,a); ,错误范例2: void main() int abc; ab=3; printf(“%d”,abc); ,报错位置,报错位置,Misplaced else,Misplaced: mispleisvt.把放错位置,Misplaced else,解析:else位置错; 编译程序发现else 语句缺少与之相匹配的if语句时此错误产生,最常导致该错误的原因是if子句后跟多个操作语句,但未用花括号括起来,另外还可能是由于else多余,还有可能由于多余的分号或漏写了大括号及前面的if语句出现语法错误引起的。,错误范例: void main() float x; double y; scanf(“%f“, ,报错位置,Compound statement missing ,Compound: kmpaund adj.【语法学】(句子)复合的;(词)复合的,Compound statement missing ,解析:复合语句漏掉 。通常由于花括号不配对引起的。 注意:不能简单的在报错位置加一个“”,就完事了,这样虽然可能可以编译成功,但其实大部分情况下都会改变你程序原来的意思。如下错误范例,报错位置在程序末尾,若简单的在其末尾处加上一花括号,想想程序变成什么意思了。正确的处理方式应是从报错位置往前仔细检查,看是哪个位置漏掉花括号。,错误范例 main( ) float a,b,t; scanf(“%f,%f“, ,报错位置,Redeclaration of “xxx”,Redeclaration:rideklrein n. 重复声明,Redeclaration of“xxx”,解析:“xxx”重定义;此标识已经定义过。 即某个标识符被你重新定义了多次。在同一个函数里标识符只能被定义一次。一个标识符要是既被用来做为整型变量,也被用来做为实型变量,或数组名,你想计算机遇到这样一个标识符不是会晕倒。,错误范例: main( ) float a; int a10; getch(); ,报错位置,Constant expression required,Constant:knstntn.常数,常量 Expression:ikspren n.(数学)表达式 required:rikwaid vt.需要,Constant expression required,解析:要求常量表达式;数组定义时指定的数组大小必须是常量。,错误范例: main( ) int n=10; int an; getch(); ,报错位置,For statement missing ;,解析:for语句漏掉“;”。 常由于写for语句是漏掉“;”,或将分号“;”写成了逗号“,”。,错误范例: main() int sum= 0,i; for(i=1 , i=5 ; i+) sum=sum + i; printf(“%dn”,sum); ,报错位置,Too few parameter in call to xxx,Parameter: prmitn.物数参量, 参数 call:k:lv. 调用,Too few parameter in call to xxx,解析:调用函数xxx时参数太少;调用指定的函数(该函数用一原形声明)时,给出的参数应与其要求的参数数量相匹配,不匹配时就会报错。,错误范例: #include void main() double x;int n; double fun(double x,int n); scanf(“%lf%d“, /*/ ,报错位置,Case statement missing :,解析:Case语句漏掉 “:”,错误范例: main( ) int x,y; scanf(“%d“, ,报错位置,Lvalue repuired,Lvalue:左值,Lvalue repuired,解析:赋值请求;赋值运算符的左边必须是一个地址表达式,包括数值变量、指针变量、结构引用域、间接指针和数组元素。,错误范例: void main int a; 3=a; ,报错位置,Divided error 或 division by zero,解析:出现了被除数为0的情况. 例: void main() int x=0; printf(“%d”,5/x); 出现被除数为0的情况 ,Code has no effect,Code:kudn.【计算机】编码;编码程序;指令 effect:ifektn. 结果, 效果, 影响,Code has no effect,解析:代码无效;当编译程序发现一个含有无效操作符的语句时,发出此警告。可能是由于其他错误引起。例如语句“a+b;”对每一个变量都不起作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论