资源描述:
《十大编译错误及解析.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、十大编译错误及解析错误(Error)Statementmissing;DeclarationsyntaxerrorUndefinedsymbol‘xxx’MisplacedelseCompoundstatementmissing}Redeclarationof“xxx”ConstantexpressionrequiredForstatementmissing;Toofewparameterincallto‘xxx’Casestatementmissing:LvaluerepuiredDividederror或di
2、visionbyzero警告(warning)Codehasnoeffect。Statementmissing;单词解释:Statement:[‘steitmənt]n.【计算机】语句,计算机程序指令miss:[mis]v.漏掉遗失Statementmissing;解析:语句缺少分号;编译程序发现一表达式语句后面没有分号。注意是表达式语句。另外一般缺少分号的位置在提示位置的前一语句,因为C语言允许一条语句写在多行,所以编译器检查到当前行时并无法确定该条语句的“;”是否缺失,因为可能“;”被写在了下一行,所以它检查
3、到下一行时发现没有以“;”结尾才会报错。错误范例:voidmain(){inta;a=3printf(“%d”,a);}报错位置DeclarationsyntaxerrorDeclaration:[dekləreiʃən]n.声明syntax:[‘sintæks]n.句法;句法规则Declarationsyntaxerror解析:声明出现语法错误;在源文件中,某个声明丢失了某些符号或有多余的符号。注意是声明部分,而一般情况下也是在声明部分末尾未加分号“;”。错误范例:voidmain(){intaa=3;prin
4、tf(“%d”,a);}报错位置Undefinedsymbol‘xxx’Undefined:['ʌndi'faind]adj.不明确的,未下定义的symbol:['simbəl]n.符号,记号,代号Undefinedsymbol‘xxx’解析:符号‘xxx’未定义;标识符无定义,变量都是要先定义后使用的,若未定义就使用就会出现该错误,也可能是有定义,但引用处有拼写错误(即与定义的名字不相符)引起。错误范例1:voidmain(){a=3;printf(“%d”,a);}错误范例2:voidmain(){intab
5、c;ab=3;printf(“%d”,abc);}报错位置报错位置MisplacedelseMisplaced:[mis'pleis]vt.把…放错位置Misplacedelse解析:else位置错;编译程序发现else语句缺少与之相匹配的if语句时此错误产生,最常导致该错误的原因是if子句后跟多个操作语句,但未用花括号括起来,另外还可能是由于else多余,还有可能由于多余的分号或漏写了大括号及前面的if语句出现语法错误引起的。错误范例:voidmain(){floatx;doubley;scanf("%f",&
6、x);if(x<3);y=sin(x);elseif(x==3)y=x;elsey=cos(2*x+1);printf("fun1(%.2f)=%.2f",x,y);getch();}报错位置Compoundstatementmissing}Compound:['kɔmpaund]adj.【语法学】(句子)复合的;(词)复合的Compoundstatementmissing}解析:复合语句漏掉}。通常由于花括号不配对引起的。注意:不能简单的在报错位置加一个“}”,就完事了,这样虽然可能可以编译成功,但其实大部
7、分情况下都会改变你程序原来的意思。如下错误范例,报错位置在程序末尾,若简单的在其末尾处加上一花括号,想想程序变成什么意思了。正确的处理方式应是从报错位置往前仔细检查,看是哪个位置漏掉花括号。错误范例main(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;printf("%.1f,%.1f",a,b);getch();}报错位置Redeclarationof“xxx”Redeclaration:[ri’dekləreiʃən]n.重复声明Redecl
8、arationof“xxx”解析:“xxx”重定义;此标识已经定义过。即某个标识符被你重新定义了多次。在同一个函数里标识符只能被定义一次。一个标识符要是既被用来做为整型变量,也被用来做为实型变量,或数组名,你想计算机遇到这样一个标识符不是会晕倒。错误范例:main(){floata;inta[10];getch();}报错位置Constantexpressionrequi