常见的编译错误信息

合集下载

c语言常见编译错误提示

c语言常见编译错误提示

c语言常见编译错误提示1) error C2001: newline in constant编号:C2001直译:在常量中出现了换行。

错误分析:1.字符串常量、字符常量中是否有换行。

2.在这句语句中,某个字符串常量的尾部是否漏掉了双引号。

3.在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"”。

4.在这句语句中,某个字符常量的尾部是否漏掉了单引号。

5.是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。

2) error C2015: too many characters in constant编号:C2015直译:字符常量中的字符太多了。

错误分析:单引号表示字符型常量。

一般的,单引号中必须有且只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。

另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:i f (x == 'x || x == 'y') { … }值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。

3) error C2137: empty character constant编号:C2137直译:空的字符定义。

错误分析:原因是连用了两个单引号,而中间没有任何字符,这是不允许的。

4) error C2018: unknown character '0x##'编号:C2018直译:未知字符‘0x##’。

错误分析:0x##是字符ASC码的16进制表示法。

这里说的未知字符,通常是指全角符号、字母、数字,或者直接输入了汉字。

如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。

5) error C2041: illegal digit '#' for base '8'编号:C2141直译:在八进制中出现了非法的数字‘#’(这个数字#通常是8或者9)。

常见的编译错误

常见的编译错误

1.fatal error C1003: error count exceeds number; stopping compilation中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译2.fatal error C1004: unexpected end of file found中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等3.fatal error C1083: Cannot open include file: 'xxx': No such file or directory中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径分析:头文件不存在、或者头文件拼写错误、或者文件为只读4.fatal error C1903: unable to recover from previous error(s); stopping compilation中文对照:(编译错误)无法从之前的错误中恢复,停止编译分析:引起错误的原因很多,建议先修改之前的错误5.error C2001: newline in constant中文对照:(编译错误)常量中创建新行分析:字符串常量多行书写6.error C2006: #include expected a filename, found 'identifier'中文对照:(编译错误)#include命令中需要文件名分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h”7.error C2007: #define syntax中文对照:(编译错误)#define语法错误分析:例如“#define”后缺少宏名,例如“#define”8.error C2008: 'xxx' : unexpected in macro definition中文对照:(编译错误)宏定义时出现了意外的xxx分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”9.error C2009: reuse of macro formal 'identifier'中文对照:(编译错误)带参宏的形式参数重复使用分析:宏定义如有参数不能重名,例如“#define s(a,a) (a*a)”中参数a重复10.error C2010: 'character' : unexpected in macro formal parameter list中文对照:(编译错误)带参宏的形式参数表中出现未知字符分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’error C2014: preprocessor command must start as first nonwhite space中文对照:(编译错误)预处理命令前面只允许空格分析:每一条预处理命令都应独占一行,不应出现其他非空格字符11.error C2015: too many characters in constant中文对照:(编译错误)常量中包含多个字符分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“char error = 'error';”12.error C2017: illegal escape sequence 中文对照:(编译错误)转义字符非法分析:一般是转义字符位于' ' 或" " 之外,例如“char error = ' '\n;”13.error C2018: unknown character '0xhh'中文对照:(编译错误)未知的字符0xhh分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号14.error C2019: expected preprocessor directive, found 'character'中文对照:(编译错误)期待预处理命令,但有无效字符分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1”15.error C2021: expected exponent value, not 'character'中文对照:(编译错误)期待指数值,不能是字符分析:一般是浮点数的指数表示形式有误,例如123.456E16.error C2039: 'identifier1' : is not a member of 'identifier2'中文对照:(编译错误)标识符1不是标识符2的成员分析:程序错误地调用或引用结构体、共用体、类的成员17.error C2041: illegal digit 'x' for base 'n' 中文对照:(编译错误)对于n进制来说数字x非法分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数18.error C2048: more than one default中文对照:(编译错误)default语句多于一个分析:switch语句中只能有一个default,删去多余的default 19.error C2050: switch expression not integral中文对照:(编译错误)switch表达式不是整型的分析:switch表达式必须是整型(或字符型),例如“switch ("a")”中表达式为字符串,这是非法的20.error C2051: case expression not constant中文对照:(编译错误)case表达式不是常量分析:case表达式应为常量表达式,例如“case "a"”中“"a"”为字符串,这是非法的21.error C2052: 'type' : illegal type for case expression中文对照:(编译错误)case表达式类型非法分析:case表达式必须是一个整型常量(包括字符型)22.error C2057: expected constant expression中文对照:(编译错误)期待常量表达式分析:一般是定义数组时数组长度为变量,例如“int n=10; int a[n];”中n为变量,这是非法的23.error C2058: constant expression is not integral中文对照:(编译错误)常量表达式不是整数分析:一般是定义数组时数组长度不是整型常量24.error C2059: syntax error : 'xxx'中文对照:(编译错误)‘xxx’语法错误分析:引起错误的原因很多,可能多加或少加了符号xxx25.error C2064: term does not evaluate toa function中文对照:(编译错误)无法识别函数语言分析:1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确2、变量与函数重名或该标识符不是函数,例如“int i,j; j=i();”中i不是函数26.error C2065: 'xxx' : undeclared identifier中文对照:(编译错误)未定义的标识符xxx分析:1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。

计算机软件常见错误解决办法

计算机软件常见错误解决办法

计算机软件常见错误解决办法第一章:编译错误解决办法编译错误是在软件开发过程中常见的问题之一。

解决编译错误需要仔细检查代码,并根据错误信息进行相应的处理。

以下是一些常见的编译错误及解决办法。

1. “未定义的标识符”错误:这种错误通常是由于变量、函数或类的定义缺失导致的。

解决方法是在代码中正确地定义相应的标识符。

2. “语法错误”:语法错误通常指代码中的拼写错误、符号错误或者错误的语法结构。

解决方法是仔细检查代码,并根据编译器给出的错误信息进行修改。

3. “未引用的变量”错误:这种错误表示代码中存在变量声明,但未对其进行引用。

解决方法是检查变量声明和引用的代码,并进行相应的修改。

第二章:运行时错误解决办法运行时错误是在程序执行过程中出现的错误,通常是由逻辑错误、内存错误或者输入错误引起的。

以下是一些常见的运行时错误及解决办法。

1. “空指针异常”:这种错误表示程序试图访问空指针。

解决方法是在使用指针前,判断其是否为空,并进行相应的处理。

2. “数组越界”:数组越界错误表示程序试图访问数组中超出有效范围的元素。

解决方法是检查数组的索引,并确保其不超过数组的长度。

3. “逻辑错误”:逻辑错误通常是由于程序设计不正确导致的。

解决方法是仔细检查程序逻辑,并进行必要的修改。

第三章:内存错误解决办法内存错误是指程序在使用内存时出现的错误,包括内存泄漏和内存溢出等。

以下是一些常见的内存错误及解决办法。

1. “内存泄漏”:内存泄漏是指程序在分配内存后,未能正确释放导致内存的浪费。

解决方法是确保在使用完内存后进行及时释放。

2. “内存溢出”:内存溢出错误表示程序试图分配超过内存容量的空间。

解决方法是优化程序,减少对内存的需求,或者使用动态内存分配来解决问题。

3. “野指针”:野指针是指指向已释放内存的指针。

解决方法是在释放内存后,将指针设置为NULL,避免再次使用。

第四章:网络错误解决办法网络错误是指程序在进行网络通信时出现的问题,包括连接错误、超时错误和数据传输错误等。

IAR 编译错误信息表

IAR 编译错误信息表

编译错误信息表15 ‘,’or’)’expected(预待’,’或‘)’) 编译器发现函数定义头部或宏定义的句法无效16 Identifier expected(期待识别符) 在声明、goto语句或预处理器行中丢失识别符17 Space or tab expected(期待空格或制表符) 必须用制表或空格字符把预处理器参数与伪指令隔开。

18 Macro parameter ‘name’ redefined(宏参数‘name’被重定义) #define语句中符号的形式参数被重复19 Unmatched #else,#endif或#elif(不匹配的# else,#endif 或#elif) 致命错误。

丢失了#if,#ifdef或#ifdef20 No such pre-processor command:’name’(无这样的预处理命令)#后随未知的识别符21 Unexpected token found in pre-processorline(在预处理器行中发现未预期的记号)在读参数部分之后预处理器行不空。

22 Too many nested parameterized macro(maxis50)(嵌套参数化宏太多)致命错误。

预处理器极限被超过。

23 Too many active macro parameters(max is250)(有效宏参数太多(最大为250))致命错误。

预处理器极限被超过。

24 Too deep macro nestiong(max is 100)(宏嵌套太深(最大为100))致命错误。

预处理器极限被超过。

25 Macro ‘name’called with too manyparameters(用太多的参数调用宏‘name’) 致命错误。

用比声明更多的参数调用参数化的#define宏。

26 Actual macro parameter too long(max is512)(实际宏参数太长(最大为512)单个宏参数不能超过源代码行的长度27 macro ‘name’called with too fewpatameters(用太少的参数调用宏‘name’) 用比声明更少的参数调用参数化#define宏28 Missing #endif(遗漏#endif) 致命错误。

常见编译运行错误1

常见编译运行错误1

常见编译错误
引言
刚开始接触代码的时候的由于自己对知识点的不了解,达不到准确的应用,所以会发生一些常见的编译异常。

这是很多新手都会遇到的问题,所以小慕为大家准备了一些常见的编译错误和解决方法。

Tips:如果在编程中出现编译错误,可以将光标移动到代码飘红处,然后会出现如下提示,建议同学仔细阅读提示中的英文(如果有不明白的地方,可以去使用翻译软件进行翻译)
1、重复定义相同变量名(导致编译错误)
示例代码
错误原因:该错误是d1这个变量重复定义了,也就是说一山不容二虎,如果同为方法内的变量,就不可以重复定义相同的变量名。

改为double d2 = d即可。

2、类型不匹配:无法将字符串转换为字符
示例代码
错误原因
char类型的数据表示一个字符,它可以是a,或者是1,但是不能用双引号老表示,只能用单引号来表示。

双引号表示的是字符串,应该用String类型的数据来接收。

3、final关键字修饰的常量无法再次赋值
示例代码
错误原因
final关键字修饰的常量是无法再进行赋值的,否则会出现上图中的编译错误。

4、超出类型取值范围的错误
示例代码
错误原因
int类型数据的取值范围是-2的31次方到2的31次方-1所以103948583923948超出了int类型的取值范围,应改用long类型(长整型),需要在103948583923948后加一个L。

c++程序编译常见错误

c++程序编译常见错误

一、常见编译错误:
二、编译注意事项:
1.编译器所报告的第一个错误位置往往是有效的,但是报告的错误内容未必正确。

比如第二次编译时报告的错误是“在小于号之前缺少了逗号”,而事实上问题是for语句中应该使用分号。

所以,报告的错误内容只能参考,却不能完全相信。

2.编译器报告的错误数目与实际错误数目未必符合。

甚至第一次改正一个错误后,
错误数反而增加了。

所以,报告的错误数目不能正确描述实际的错误规模。

3.编译器报告的警告也应当被重视。

有些人认为即使程序存在警告,但是它能正常
执行,所以警告可以被忽视。

这种想法是错误的。

如果一个程序是完美的,为什么编译器还要给出警告呢?警告的存在就说明了这个程序有些地方还不符合正确的语法。

4.I:\program\vc\book\11_3_1\main.cpp(5)括号中的5表示错误在程序的第5行。


需要自己去数行数,只需要双击这个错误就能到达对应的行。

编译错误名词解释

编译错误名词解释

编译错误名词解释编译错误是计算机程序的一种常见错误,它可能会导致程序突然停止运行、出现显示闪烁或无法正常运行等状况。

编译错误指的是在将程序转换为可执行代码时可能出现的错误,这也是编译器为何重要的原因之一。

下面就来讨论几种常见的编译错误以及它们的解决办法。

语法错误:语法错误是最常见的编译错误,它是指语言语法的错误,比如它们的标点符号,句子结构,函数声明,变量声明等是错误的,需要根据编程语言的语法规则来更正它们的错误。

类型错误:类型错误是变量和数据类型不匹配所导致的一种编译错误。

比如在将整数值转换为浮点数值时,应该使用float函数,否则会出现类型错误。

此外,这类错误还会出现在在使用不匹配的变量或类型进行比较或运算时。

解决类型错误的方法是确保所有变量和值的类型都是正确的,而且必须匹配。

标签错误:标签错误是指在程序中使用错误的标签,这些错误的标签会导致程序无法执行,因为编译器无法判断要执行的代码的准确位置。

解决标签错误的方法是,需要对程序代码进行检查,如果发现标签有问题,要及时调整和修改。

外部应用程序引用错误:外部应用程序引用错误是指程序中引用了不存在的外部应用程序,这样编译器就会报告错误,因为它找不到要引用的程序。

解决方法是安装引用的外部应用程序,或者将程序中的引用从外部应用程序移除掉。

变量重定义错误:变量重定义错误是指程序中变量被重复定义,比如在同一代码段中定义两个同名变量,编译器会报错,说明程序存在变量重复定义的问题。

解决方法是在程序中查找相同名字的变量,将其中一个变量名称更改。

语义错误:语义错误是指程序中出现的语义错误,这种错误主要是由于编程者在写程序时使用了错误的语法语义而造成的,它会导致程序的运行结果不正确。

解决方法是检查程序代码,确定错误的语义,然后更正错误的语句。

以上就是编译错误的几种常见形式,并简要介绍了它们的解决办法。

了解了这些信息,编程者就可以更好地识别编程中可能出现的编译错误,从而可以更有效地解决编译问题,让自己的程序代码更加完美且更具有可维护性。

Java常见编译错误

Java常见编译错误

java常见编译错误信息及说明1、java:33: 不是语句解释:程序中出现了没有任何意义的字符(串),可能是无意中打出了没有任何意义的字符;2、java:34: 需要 ';'解释:某条语句没有以分号结束;3、java:36: 缺少返回语句解释:带返回值的函数缺少 return 语句;4、java:33: 不兼容的类型解释:运算符两边的数据类型不一致或者不能做隐式转换;5、java:36: 无法访问的语句解释:此语句永远不可能被执行,可能是此语句之前存在类似于 while (true)的语句,导致此语句永远不可能被执行;6、java:34: 非法的表达式开始解释:有不符合语法规范的表达式出现;7、java:34: 找不到符号解释:使用了没有定义或没有引入的变量;8、java:33: 非法字符: \65307解释:在中文输入状态下输入了一些标点符号;9、java:18: 不可转换的类型解释:运算符两边的数据类型不一致或者不能做隐式转换;10、java:19: "else" 不带有 "if"解释:编译器找到 else 语句但是没有找到与之对应的 if 语句,可能是由于大括号没有成对出现;11、java:12: 可能损失精度解释:把高精确度类型的数据赋值给低精确度类型的变量;12、java:17: 需要 ')'解释:括号没有成对出现;13、java:8: 可能尚未初始化变量 s解释:局部变量 s 没有赋初值;14、java:7: 不可比较的类型:int 和 Boolean解释:运算符两边操作数的数据类型不符合运算符的使用规范;15、java:6: 已在 isLeap(int) 中定义 year解释:变量 year 被重复定义;16、java:21: 字符字面值的行结尾不合法解释:程序语句的结尾不是 java 规定的结束符号,而是其他的符号;17、java:9: 需要 <标识符>解释:可能是由于用户指定了数据类型,但未指定该类型的变量名;18、java:8: 无法从静态上下文中引用非静态变量 this解释:在静态方法中使用了非静态变量 this;19、java:12: 在 switch 或 loop 外部中断解释:在非循环语句或非 switch 语句中使用了中断循环功能的语句break;20、java:21: 对于结果类型为 void 的方法,无法返回值解释:空返回值方法中出现了 return 语句;21、java:12: 需要数组,但找到 int解释:在应该出现数组的地方没有找到数组类型的变量,而是找到 int 类型的变量;22、java:13: 无法将 Node 中的 setData(int) 应用于 ()解释:一般情况下是方法调用时缺少了参数;23、java:5: 缺少数组维数解释:数组的定义过程中没有指定数组的维数;24、进行语法解析时已到达文件结尾解释:一般情况是缺少{}造成的;25、需要为 class、interface 或 enum解释:一般情况下是多了{}造成的;26、无法为最终变量 length 指定值解释:Length 为 final 类型的变量,值不能修改。

常见编译错误解析

常见编译错误解析

西北大学信息科学与技术学院. All rights reserved 2011
第3页
常见编译器错误提示(四)
• • • • • • • • • • Enumeration constant syntax error -----------------枚举常数语法错误 Error directive :xxx ------------------------错误的编译预处理命令 Error writing output file ---------------------写输出文件错误 Expression syntax error -----------------------表达式语法错误 Extra parameter in call ------------------------调用时出现多余错误 File name too long ----------------文件名太长 Function call missing -----------------函数调用缺少右括号 Fuction definition out of place ------------------函数定义位置错误 Fuction should return a value ------------------函数必需返回一个值 Goto statement missing label ------------------ Goto语句没有标号
西北大学信息科学与技术学院. All rights reserved 2011
第7• • • • No declaration for function ‘’xxx‘’ -------------------没有函数xxx的说明 No stack ---------------缺少堆栈 No type information ------------------没有类型信息 Non-portable pointer assignment --------------------不可移动的指针(地址常数)赋值 Non-portable pointer comparison --------------------不可移动的指针(地址常数)比较 Non-portable pointer conversion ----------------------不可移动的指针(地址常数)转换 Not a valid expression format type ---------------------不合法的表达式格式 Not an allowed type ---------------------不允许使用的类型 Numeric constant too large -------------------数值常太大 Out of memory -------------------内存不够用

最常见的20种VC++编译错误信息集合五篇

最常见的20种VC++编译错误信息集合五篇

最常见的20种VC++编译错误信息集合五篇第一篇:最常见的20种VC++编译错误信息集合1、fatal error C1010: unexpected end of file while looking for precompiled header directive。

寻找预编译头文件路径时遇到了不该遇到的文件尾。

(一般是没有#include “stdafx.h”)2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory不能打开包含文件“R…….h”:没有这样的文件或目录。

3、error C2011: 'C……': 'class' type redefinition类“C……”重定义。

4、error C2018: unknown character '0xa3'不认识的字符'0xa3'。

(一般是汉字或中文标点符号)5、error C2057: expected constant expression希望是常量表达式。

(一般出现在switch语句的case分支中)6、error C2065: 'IDD_MYDIALOG' : undeclared identifier“IDD_MYDIALOG”:未声明过的标识符。

7、error C2082: redefinition of formal parameter 'bReset'函数参数“bReset”在函数体中重定义。

8、error C2143: syntax error: missing ':' before '{'句法错误:“{”前缺少“;”。

9、error C2146: syntax error : missing ';' before identifier 'dc'句法错误:在“dc”前丢了“;”。

十大编译错误及解析

十大编译错误及解析

Code has no effect
解析:代码无效;当编译程序发觉一种具有无
效操作符旳语句时,发出此警告。可能是因为 其他错误引起。例如语句“a+b;”对每一种变量 都不起作用,无需操作,且可能引起一种错误。
警告范例1:
#include<stdio.h>
void main()
{
int k; for(k=1,k<5,k++)
警告报错位置
printf("&");
} 会有两个信息:
warning: Code has no effect
error: For statement missing ;
警告范例2:
#include<stdio.h>
void main()
{
int k=3;
k=1/3*k;
警告位置
}
警告原因:1/3肯 定为0,因背面旳
报错位置
Lvalue repuired
Lvalue:左值
Lvalue repuired
解析:赋值祈求;赋值运算符旳左边必须 是一种地址体现式,涉及数值变量、指针变 量、构造引用域、间接指针和数组元素。
错误范例:
void main {
int a; 3=a; }
报错位置
Divided error 或 division by zero
十大编译错误及解析
错误(Error) Statement missing; Declaration syntax error Undefined symbol‘xxx’ Misplaced else Compound statement missing} Redeclaration of“xxx” Constant expression required For statement missing; Too few parameter in call to‘xxx’ Case statement missing: Lvalue repuired Divided error 或 division by zero 警告(warning) Code has no effect 。

编译时的常见错误

编译时的常见错误

一、编译时的常见错误1. 数据类型错误。

此类错误是初学者编程时的常见现象, 下面是一些要引起注意的错误:(1) 所有变量和常量必须要加以说明。

(2) 变量只能赋给相同类型的数据。

(3) 对scanf()语句, 用户可能输入错误类型的数据项, 这将导致运行时出错, 并报出错信息。

为避免这样的错误出现, 你就提示用户输入正确类型的数据。

(4) 在执行算术运算时要注意:a. 根据语法规则书写双精度数字。

要写0.5, 而不是写.5; 要写1.0, 而不是1。

尽管C语言会自动地把整型转换成双精度型, 但书写双精度型是个好习惯。

让C语言为你做强行转换这是一种效率不高的程序设计风格。

这有可能导致转换产生错误。

b. 不要用0除。

这是一个灾难性的错误, 它会导致程序失败, 不管C 语言的什么版本, 都是如此, 执行除法运算要特别小心。

c. 确保所有的双精度数(包括那些程序输入用的双精度数) 是在实数范围之内。

d. 所有整数必须在整数允许的范围内。

这适用于所有计算结果, 包括中间结果。

2. 将函数后面的";"忘掉。

此时错误提示色棒将停在该语句下的一行, 并显示:Statement missing in function <函数名>3. 给宏指令如#include, #define等语句尾加了";"号。

4. "{"和"}"、"("和")"、"/*"和"*/"不匹配。

引时色棒将位于错误所在的行, 并提示出有关丢掉括号的信息。

5. 没有用#include指令说明头文件, 错误信息提示有关该函数所使用的参数未定义。

6. 使用了Turbo C保留关键字作为标识符, 此时将提示定义了太多数据类型。

7. 将定义变量语句放在了执行语句后面。

此时会提示语法错误。

8. 使用了未定义的变量, 此时屏幕显示:Undefined symbol '<变量名>' in function <函数名>9. 警告错误太多。

C语言编译中的常见错误

C语言编译中的常见错误

C语言编译中的常见错误1、警告类错误?‘XXX’declare but never used变量XXX已定义但从未用过。

?‘XXX’is assigned a value which is never used变量XXX已赋值但从未用过。

?Code has no effect 程序中含有没有实际作用的代码。

?Non-portable pointer conversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。

?Possib le use of ‘XXX’before definition表达式中使用了未赋值的变量?Possibly incorrect assignment这样的赋值可能不正确?Redeclaration of ‘main’一个程序文件中主函数main不止一个。

?Suspicious pointer conversion可疑的指针转换。

通常是使用了基本类型不匹配的指针。

?Unreachable code程序含有不能执行到的代码。

2、错误或致命错误?Compound statement missing } in function main程序结尾缺少括号}。

?“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。

?Case outside of switch case不属于Switch结构,多由于switch结构中的花括号不配对所致。

?Case statement missing ‘:’switch结构中的某个case之后缺少冒号。

?Constant expression required定义数组时指定的数组长度不是常量表达式。

?Declaration syntax error 结构体或联合类型的定义后缺少分号。

?Declaration was expected 缺少说明,通常是因为缺少分界符如逗号、分号、右圆括号等所引起的。

C语言 编译出错信息一览表

C语言 编译出错信息一览表

附录二编译出错信息一览表Turbo C编译器查出的源程序错误分为3类:严重错误、一般错误和警告。

严重错误通常是内部编译出错,一般很少出现。

一旦发生严重错误,编译立即停止。

一般错误是指程序的语法错误、磁盘或内存存取错误或命令行错误等。

警告指出一些值得怀疑的情况,而这些情况本身又可以合理地作为源程序的一部分。

它们不阻止编译的进行,只是产生警告信息。

例如,在Turbo C中,当编译时,编译时信息窗口会显示如下信息:Error xxx Undefined symbol ‘x’in function main这是致命性的错误:在main函数中,xxx行的符号‘x’没定义。

这种错误只有修改了才能编译成功,也才能做随后的链接和运行功能。

Warning xxx Possible use of ‘x’ before definition in …这是警告性的信息:在xxx中xxx行在定义前可能使用了变量‘x’。

这种信息不用修改也可以做随后的链接和运行功能,但可能会产生错误也可能不会。

在编译时,编译程序首先输出这3类错误信息,然后指出源文件名和发现出错的行号,最后输出信息的内容。

下面按字母顺序分别列出这3类错误信息。

并对每一条信息进行解释,指出产生的原因和纠正方法。

经常浏览这些出错信息,不仅可以在程序调试时快速查出错误原因和位置,而且有助于正确地掌握C语言语法知识。

1.严重错误Bad call of inline function (内部函数的不合理调用)不正确地调用一个宏定义的内部函数。

一个内部函数以两个下划线(_ _)开始和结束。

Irreducible expression tree (不可约表达式树)源文件中的表达式使得代码生成程序无法为其产生代码。

如果编译时总遇到这种错误,应该通知Borland公司。

Register alloction failure (存储器分配失败)这种错误指源文件中的表达式太复杂,代码生成程序无法为它生成代码。

IAR编译错误总结

IAR编译错误总结

IAR编译错误总结1. 错误:"undefined reference to"(未定义引用错误)解决方法:这种错误通常是由于函数或变量的定义缺失导致的。

可以检查一下函数或变量的定义是否正确,并确认是否包含正确的头文件。

2. 错误:"no such file or directory"(文件或目录不存在错误)解决方法:这种错误通常是由于指定的文件或目录不存在而导致的。

可以检查一下路径是否正确,并确认文件或目录是否存在。

3. 错误:"multiple definition of"(多重定义错误)解决方法:这种错误通常是由于同一个函数或变量在多个源文件中被定义而导致的。

可以通过在定义函数或变量的地方加上关键字 "extern"来解决这个问题。

4. 错误:"expected ';' before"(在之前缺少分号错误)解决方法:这种错误通常是由于在行代码中缺少了分号导致的。

可以检查一下代码,并确保每一行的末尾都有分号。

5. 错误:"syntax error"(语法错误)解决方法:这种错误通常是由于书写的代码有语法错误导致的。

可以仔细检查代码,并确保每个语法元素(如括号、引号等)都是成对出现的。

6. 错误:"cannot open source file"(无法打开源文件错误)解决方法:这种错误通常是由于指定的源文件无法被找到或打开而导致的。

可以检查一下路径是否正确,并确认源文件是否存在。

7. 错误:"too few arguments to function"(函数参数数量过少错误)解决方法:这种错误通常是由于调用函数时传递的参数数量少于函数定义时所需的参数数量导致的。

可以检查一下函数调用处的参数数量,并确保和函数定义处的参数数量一致。

编译失败的原因

编译失败的原因

编译失败的原因
一、概述
编译是将源代码转换为可执行代码的过程,它是软件开发中的重要环节。

然而,在编译过程中,有时会出现编译失败的情况。

本文将从多
个方面介绍编译失败的原因。

二、语法错误
语法错误是最常见的编译失败原因之一。

当源代码中存在语法错误时,编译器无法正确解析代码,从而导致编译失败。

常见的语法错误包括
缺少分号、括号不匹配、变量未定义等。

三、类型错误
类型错误也是导致编译失败的一个常见原因。

当程序中存在类型不匹
配的情况时,例如将整数赋值给字符串变量,或者尝试对非对象类型
进行方法调用等,都会导致编译失败。

四、链接错误
链接错误通常发生在多个源文件被合并成一个可执行文件时。

当两个或多个源文件中存在同名函数或变量时,链接器无法确定使用哪一个函数或变量,从而导致链接失败。

五、头文件问题
头文件问题也可能导致编译失败。

当头文件路径不正确或者头文件被重复包含时,都会导致编译失败。

六、库问题
库问题也是可能导致编译失败的原因之一。

当程序依赖的库文件不存在或者版本不匹配时,编译器无法正确链接库文件,从而导致编译失败。

七、环境问题
环境问题也可能导致编译失败。

例如,当程序依赖的操作系统或者硬件平台不支持时,编译器无法正确编译程序,从而导致编译失败。

八、总结
本文从语法错误、类型错误、链接错误、头文件问题、库问题和环境
问题等多个方面介绍了可能导致编译失败的原因。

在实际开发中,我
们应该注意避免这些问题的出现,并及时排查和解决已经出现的问题。

C语言常见编译错误及分析大全

C语言常见编译错误及分析大全

C语言常见编译错误及分析大全1、fatal error C1003: error count exceeds number; stopping compilation中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译2、fatal error C1004: unexpected end of file found中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等3、fatal error C1083: Cannot open include file: 'xxx': No such file or directory中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径分析:头文件不存在、或者头文件拼写错误、或者文件为只读4、fatal error C1903: unable to recover from previous error(s); stopping compilation 中文对照:(编译错误)无法从之前的错误中恢复,停止编译分析:引起错误的原因很多,建议先修改之前的错误5、error C2001: newline in constant中文对照:(编译错误)常量中创建新行分析:字符串常量多行书写6、error C2006: #include expected a filename, found 'identifier'中文对照:(编译错误)#include命令中需要文件名分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h”7、error C2007: #define syntax中文对照:(编译错误)#define语法错误分析:例如“#define”后缺少宏名,例如“#define”8、error C2008: 'xxx' : unexpected in macro definition中文对照:(编译错误)宏定义时出现了意外的xxx分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”9、error C2009: reuse of macro formal 'identifier'中文对照:(编译错误)带参宏的形式参数重复使用分析:宏定义如有参数不能重名,例如“#define s(a,a) (a*a)”中参数a重复10、error C2010: 'character' : unexpected in macro formal parameter list中文对照:(编译错误)带参宏的形式参数表中出现未知字符分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’11、error C2014: preprocessor command must start as first nonwhite space中文对照:(编译错误)预处理命令前面只允许空格分析:每一条预处理命令都应独占一行,不应出现其他非空格字符12、error C2015: too many characters in constant中文对照:(编译错误)常量中包含多个字符分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“char error = 'error';”13、error C2017: illegal escape sequence中文对照:(编译错误)转义字符非法分析:一般是转义字符位于' ' 或" " 之外,例如“char error = ' '\n;”14、error C2018: unknown character '0xhh'中文对照:(编译错误)未知的字符0xhh分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号15、error C2019: expected preprocessor directive, found 'character'中文对照:(编译错误)期待预处理命令,但有无效字符分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1”16、error C2021: expected exponent value, not 'character'中文对照:(编译错误)期待指数值,不能是字符分析:一般是浮点数的指数表示形式有误,例如123.456E17、error C2039: 'identifier1' : is not a member of 'identifier2'中文对照:(编译错误)标识符1不是标识符2的成员分析:程序错误地调用或引用结构体、共用体、类的成员18、error C2041: illegal digit 'x' for base 'n'中文对照:(编译错误)对于n进制来说数字x非法分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数19、error C2048: more than one default中文对照:(编译错误)default语句多于一个分析:switch语句中只能有一个default,删去多余的default20、error C2050: switch expression not integral中文对照:(编译错误)switch表达式不是整型的分析:switch表达式必须是整型(或字符型),例如“switch ("a")”中表达式为字符串,这是非法的21、error C2051: case expression not constant中文对照:(编译错误)case表达式不是常量分析:case表达式应为常量表达式,例如“case "a"”中“"a"”为字符串,这是非法的22、error C2052: 'type' : illegal type for case expression中文对照:(编译错误)case表达式类型非法分析:case表达式必须是一个整型常量(包括字符型)23、error C2057: expected constant expression中文对照:(编译错误)期待常量表达式分析:一般是定义数组时数组长度为变量,例如“int n=10; int a[n];”中n为变量,这是非法的24、error C2058: constant expression is not integral中文对照:(编译错误)常量表达式不是整数分析:一般是定义数组时数组长度不是整型常量25、error C2059: syntax error : 'xxx'中文对照:(编译错误)‘xxx’语法错误分析:引起错误的原因很多,可能多加或少加了符号xxx26、error C2064: term does not evaluate to a function中文对照:(编译错误)无法识别函数语言分析:1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确2、变量与函数重名或该标识符不是函数,例如“int i,j; j=i();”中i不是函数27、error C2065: 'xxx' : undeclared identifier中文对照:(编译错误)未定义的标识符xxx分析:1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。

Java常见编译错误信息及说明

Java常见编译错误信息及说明

Java编译错误信息及说明1、java:33:不是语句2、java:34:需要';'3、java:36:缺少返回语句4、java:33:不兼容的类型5、java:36:无法访问的语句6、java:34:非法的表达式开始7、java:34:找不到符号8、java:33:非法字符:\653079、java:18:不可转换的类型10、java:19: "else"不带有"if"解释:编译器找到else语句但是没有找到与之对应的if语句,可能是由于大括号没有成对出现;解释:运算符两边的数据类型不一致或者不能做隐式转换;解释:在中文输入状态下输入了一些标点符号;解释:使用了没有定义或没有引入的变量;解释:有不符合语法规范的表达式出现;解释:此语句永远不可能被执行,可能是此语句之前存在类似于while(true)的语句,导致此语句永远不可能被执行;解释:运算符两边的数据类型不一致或者不能做隐式转换;解释:带返回值的函数缺少return语句;解释:某条语句没有以分号结束;解释:程序中出现了没有任何意义的字符(串),可能是无意中打出了没有任何意义的字符;11、java:12:可能损失精度12、java:17:需要')'13、java:8:可能尚未初始化变量s14、java:7:不可比较的类型:int和Boolean15、java:6:已在isLeap(int)中定义year16、java:21:字符字面值的行结尾不合法17、java:9:需要<标识符>18、java:8:无法从静态上下文中引用非静态变量this19、java:12:在switch或loop外部中断20、java:21:对于结果类型为void的方法,无法返回值21、java:12:需要数组,但找到int22、java:13:无法将Node中的setData(int)应用于()解释:在应该出现数组的地方没有找到数组类型的变量,而是找到int类型的变量;解释:空返回值方法中出现了return语句;解释:在非循环语句或非switch语句中使用了中断循环功能的语句break;解释:在静态方法中使用了非静态变量this;解释:可能是由于用户指定了数据类型,但未指定该类型的变量名;解释:程序语句的结尾不是java规定的结束符号,而是其他的符号;解释:变量year被重复定义;解释:运算符两边操作数的数据类型不符合运算符的使用规范;解释:局部变量s没有赋初值;解释:括号没有成对出现;解释:把高精确度类型的数据赋值给低精确度类型的变量;解释:一般情况下是方法调用时缺少了参数;23、java:5:缺少数组维数24、进行语法解析时已到达文件结尾25、需要为class、interface或enum26、无法为最终变量length指定值解释:Length为final类型的变量,值不能修改。

常见编译错误信息

常见编译错误信息

常见编译错误信息A.1 visual c++ 6.0的错误信息概述visual C++ 6.0的编译连接错误信息分为三种类型:致命错误、一般错误和警告。

其中,致命错误是内部编译和连接器出错,一般错误指程序的语法错误,磁盘、文件或内存存取错误或命令行错误等,警告则只指出一些值得怀疑的情况,它并不阻止编译的进行。

Visual C++ 6.0的编译连接错误信息分为下列类型:编译器错误,错误代码 C999-C3999.编译器警告,错误代码C4000-C4999.连接器错误,错误代码LNK1000-LNK2035.连接器警告,错误代码LNK4001-LNK4255.C运行时错误,错误代码R6002-R6035.C运行时警告,错误代码CRT1001.资源编译器错误,错误代码RC1000-RC2236.资源编译器警告,错误代码RC4000-RC4413.资源编译器警告,错误代码RW1004-RW4004.NMAKE错误,错误代码U1000-U4014.ATL提供程序错误和警告,错误代码ATL2004-ATL4111.命令行错误,错误代码D8000-D8046.命令行警告,错误代码D9000-D9044.配置优化错误和警告,错误代码PG0001-PG1087.项目生成错误和警告,错误代码PRJ0002-PRJ0051.CVTRES错误,错误代码CVT1100-CVT4001.BSCMAKE错误,错误代码BK1500-BK4503.表达式计算错误,错误代码CXX0000-CXX0072数学错误,错误代码M6101-M6205.SPROXY错误,错误代码SDL0000-SDL1030.SPROXY警告,错误代码SDL4000-SDL4009.Web部署错误和警告,错误代码VCD0001-VCD0048.XDCMake错误和警告,错误代码VCD0001-VCD0048.其中最常用的是编译器错误和警告。

Visual C++ 6.0的编译连接错误信息数量庞大,而且是英文版的。

常见编译错误及常用标准库函数

常见编译错误及常用标准库函数

常见编译错误及常用标准库函数附录 A 常见编译错误和警告1. fatal error C1010: unexpected end of file while looking for precompiled header directive 寻找预编译头文件路径时遇到了不该遇到的文件尾。

(一般是因为误删了包含命令#include "stdafx.h")2. fatal error C1083: Cannot open include file: '***.h': No such file or directory 不能打开包含文件'***.h': 没有这样的文件或目录3. error C2018: unknown character '0xa3'不认识的字符’0xa3'(—般是代码中出现了汉字或中文标点符号)4. error C2039: '****' : is not a member of '####''****' 不是'####' 结构体的一个成员(一般是因为错误引用结构体成员)5. error C2057: expected constant expression 期望是常量表达式(一般出现在switch 语句的case分支中)6. error C2061: syntax error : identifier '***'语法错误: 标识符'*** '(一般是因为未定义形式参数的数据类型)7. error C2065: '****' : undeclared identifier'****': 未声明过的标识符8. error C2082: redefinition of formal parameter '****' 重复定义形式参数'****'9. error C2133: '****' : unknown size'****' : 不知道其大小(一般是因为数组未定义长度)10. error C2143: syntax error: missing ';' before '{' 句法错误:'{' 前缺少';'11. error C2146: syntax error : missing ';' before identifier '****' 句法错误:在'****' 前缺少';'12. error C2181: illegal else without matching if非法的else,没有与之匹配的if(一般是因为if与else不配对)13. error C2196: case value '****' already usedcase值'****'已经使用过(一般出现在switch语句的case分支中)14. error C2296: '%' : illegal, left operand has type 'float''%':非法,左操作数应为’float'类型15. error C2297: '%' : illegal, right operand has type 'float''%':非法,右操作数应为'float'类型16. error C2562: '****' : 'void' function returning a value'****': 无返回值的函数返回了一个值17. error C2660: '****' : function does not take 2 parameters'****' 函数不能传递2 个参数18. error C2466: cannot allocate an array of constant size 0不能分配一个大小为0 的数组(一般是因为数组未定义长度)19. error C4716: '****' : must return a value'****' 函数必须返回一个值(一般是定义返回值的函数体内未写return 语句)20. warning C4035: '****': no return value'****' 函数没有返回值21. warning C4244:'return':conversion from 'float' to 'int',possible loss of data'return':从'float'转换为’int',可能丢失数据22. warning C4553: '= =' : operator has no effect; did you intend '='? 没有效果的运算符“= =”是;否改为“=”?23. warning C4700: local variable '****' used without having been initialized 局部变量'****' 没有初始化就使用24. error C4716: '****' : must return a value'****' 函数必须返回一个值25. LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing连接错误:不能打开P1.exe文件,以改写内容(一般是因为P1.Exe 还在运行,未关闭)附录 B 常用标准库函数一. stdio.h 中包括的常用函数1. fclose 关闭文件原型:int fclose(FILE *stream);功能:关闭由stream指向的流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、fatal error C1010: unexpected end of file while looking for precompiled header directive。

寻找预编译头文件路径时遇到了不该遇到的文件尾。

解决方法:
其一,包含正确路径的#include "stdafx.h";
其二,在*.cpp文件的Setting里面设置,C++选项中的分类precompiled header,选择不包含头文件即可。

2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。

3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。

4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。

(一般是汉字或中文标点符号)
5、error C2057: expected constant expression
希望是常量表达式。

(一般出现在switch语句的case分支中)
6、error C2065: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。

7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。

8、error C2143: syntax error: missing ':' before '{'
句法错误:“{”前缺少“;”。

9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。

10、error C2196: case value '69' already used
值69已经用过。

(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in 'CHello View' 成员函数“OnTimer”没有在“CHelloView”中声明。

12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。

13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。

14、error C2660: 'SetTimer' : function does not take 2 parameters
“SetTimer”函数不传递2个参数。

15、warning C4035: 'f……': no return value
“f……”的return语句没有返回值。

16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having been initialized
局部变量“bReset”没有初始化就使用。

18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。

19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。

(一般是P1.Exe还在运行,未关闭)20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)" 连接时发现没有实现的外部符号(变量、函数等)。

相关文档
最新文档