常见错误中英文对照表常见错误中英文对照表fatalerrorC1003:error count exceeds number; stopping compilation中文对照中文对照:错误太多,停止编译分析分析:修改之前的错误,再次编译fatal errorC1004:unexpected end of file found中文对照中文对照:文件未结束分析分析:一个函数或者一个结构定义缺少“}” 、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/"不完整等fatal error C1083: Cannotopen include file:’xxx': No such file or directory中文对照中文对照:无法打开头文件 xxx:没有这个文件或路径分析分析:头文件不存在、或者头文件拼写错误、或者文件为只读fatal error C1903: unabletorecover from previous error(s);stopping compilation中文对照中文对照:无法从之前的错误中恢复,停止编译分析分析:引起错误的原因很多,建议先修改之前的错误error C2001:newline inconstant中文对照中文对照:常量中创建新行分析分析:字符串常量多行书写error C2006:#include expected a filename, found'identifier’中文对照中文对照:#include 命令中需要文件名分析分析:一般是头文件未用一对双引号或尖括号括起来,例如“#includestdio。
h”error C2007: #define syntax中文对照中文对照:#define语法错误分析分析:例如“#define”后缺少宏名,例如“#define”errorC2008:'xxx’ : unexpected in macro definition中文对照中文对照:宏定义时出现了意外的 xxx分析分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”error C2009: reuse of macro formal 'identifier’中文对照中文对照:带参宏的形式参数重复使用分析分析:宏定义如有参数不能重名,例如“#defines(a,a) (a*a)”中参数 a 重复error C2010: 'character' : unexpected in macro formal parameter list中文对照中文对照:带参宏的参数表表现未知字符分析分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’error C2014: preprocessorcommand muststart as firstnonwhite space中文对照中文对照:预处理命令前面只允许空格分析分析:每一条预处理命令都应独占一行,不应出现其他非空格字符error C2015:too manycharacters in constant中文对照中文对照:常量中包含多个字符分析分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符error C2017:illegalescape sequence中文对照中文对照:转义字符非法分析分析:一般是转义字符位于’ '或 "" 之外,例如“char error = ’ '\n;”----error C2018: unknown character '0xhh’中文对照中文对照:未知的字符0xhh分析分析:一般是输入了中文标点符号,例如“char error =’E’;”中“; ”为中文标点符号errorC2019: expectedpreprocessor directive, found 'character'中文对照中文对照:期待预处理命令,但有无效字符分析分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1”error C2021: expected exponentvalue, not ’character'中文对照中文对照:期待指数值,不能是字符分析分析:一般是浮点数的指数表示形式有误,例如123。
456Eerror C2039: ’identifier1': is not a memberof ’idenifier2'中文对照中文对照:标识符 1 不是标识符的成员分析分析:程序错误地调用或引用结构体、共用体、类的成员error C2048: more than one default中文对照中文对照:defauldefault语句多于一个t语句多于一个分析分析:switch 语句中只能有一个default,删去多余的 defaulterrorC2050: switchexpression not integral中文对照中文对照:switchswitch 表达式不是整型的表达式不是整型的分析分析:switch 表达式必须是整型(或字符型) ,例如“switch(”a”)”中表达式为字符串,这是非法的errorC2051: case expressionnot constant中文对照中文对照:casecase 表达式不是常量表达式不是常量分析分析:case 表达式应为常量表达式,例如“case ”a"”中“”a””为字符串,这是非法的error C2052: ’type’ : illegal type for case expression中文对照中文对照:casecase 表达式类型非法表达式类型非法分析分析:case表达式必须是一个整型常量(包括字符型)errorC2057: expected constant expression中文对照中文对照:期待常量表达式期待常量表达式分析分析:一般是定义数组时数组长度为变量,例如“int n=10; inta[n];”中 n 为变量,是非法的error C2058: constant expression is not integral中文对照中文对照:常量表达式不是整数常量表达式不是整数分析分析:一般是定义数组时数组长度不是整型常量error C2059:syntax error : 'xxx’中文对照中文对照: ‘‘xxx'xxx'语法错误语法错误分析分析:引起错误的原因很多,可能多加或少加了符号 xxxerror C2064: term doesnotevaluate to afunction中文对照中文对照:无法识别函数语言无法识别函数语言分析分析:1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c)) ; ”中表达式不正确2、变量与函数重名或该标识符不是函数,例如“int i,j; j=i();”中i不是函数error C2065: ’xxx' : undeclared identifier中文对照中文对照:未定义的标识符未定义的标识符 xxxxxx分析分析:1、如果 xxx 为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写.error C2078: toomany initializers中文对照中文对照:初始值过多初始值过多分析分析:一般是数组初始化时初始值的个数大于数组长度,例如“int b[2]={1,2,3} ;"----error C2082: redefinition of formalparameter 'xxx'中文对照中文对照:重复定义形式参数重复定义形式参数 xxxxxx分析分析:函数首部中的形式参数不能在函数体中再次被定义error C2084: function 'xxx'already has a body中文对照中文对照:已定义函数已定义函数 x xxxxx分析分析:在 VC++早期版本中函数不能重名,6.0 中支持函数的重载,函数名相同但参数不一样error C2086: 'xxx' :redefinition中文对照中文对照:标识符xx标识符xxx x 重定义重定义分析分析:变量名、数组名重名error C2087: ’’ : missingsubscript中文对照中文对照:下标未知下标未知分析分析:一般是定义二维数组时未指定第二维的长度,例如“int a[3][];”errorC2100:illegal indirection中文对照中文对照:非法的间接访问运算符非法的间接访问运算符“*”分析分析:对非指针变量使用“*”运算error C2105: ’operator’needs l-value中文对照中文对照:操作符需要左值操作符需要左值分析分析:例如“ (a+b)++;”语句, “++”运算符无效error C2106: ’operator':leftoperandmust be l-value中文对照中文对照:操作符的左操作数必须是左值操作符的左操作数必须是左值分析分析:例如“a+b=1;”语句, “=”运算符左值必须为变量,不能是表达式errorC2110: cannot add twopointers中文对照中文对照:两个指针量不能相加两个指针量不能相加分析分析:例如“int*pa,*pb,*a; a =pa + pb;”中两个指针变量不能进行“+”运算error C2117:'xxx’ : array bounds overflow中文对照中文对照:数组x数组xxxxx 边界溢出边界溢出分析分析:一般是字符数组初始化时字符串长度大于字符数组长度,例如“char str[4] =”abcd"; ”error C2118: negative subscriptor subscript is toolarge中文对照中文对照:下标为负或下标太大下标为负或下标太大分析分析:一般是定义数组或引用数组元素时下标不正确error C2124: divideormod by zero中文对照中文对照:被零除或对 0 求余分析分析:例如“inti =1 / 0;”除数为 0errorC2133: ’xxx': unknown size中文对照中文对照:数组数组 xxxxx长度未知x长度未知分析分析:一般是定义数组时未初始化也未指定数组长度,例如“int a[] ; ”error C2137:emptycharacterconstant中文对照中文对照:字符型常量为空字符型常量为空分析分析:一对单引号“'' ”中不能没有任何字符error C2143: syntax error : missing 'token1'before 'token2’errorC2146: syntax error: missing'token1' before identifier 'identifier’中文对照中文对照:在标识符或语言符号在标识符或语言符号 2 2 前漏写语言符号前漏写语言符号 1 1分析分析:可能缺少“{” 、 “)"或“;"等语言符号----error C2144: syntax error : missing’)’ beforetype ’xxx’中文对照中文对照:在在 x xxx类型前缺少‘)xx类型前缺少‘) ’’分析分析:一般是函数调用时定义了实参的类型errorC2181:illegal elsewithoutmatching if中文对照中文对照:非法的没有与i非法的没有与if f 相匹配的相匹配的 elselsee分析分析:可能多加了“; ”或复合语句没有使用“{} ”error C2196: case value '0' alreadyused中文对照中文对照:cacasse e 值值 0 0 已使用已使用分析分析:case 后常量表达式的值不能重复出现errorC2296: '%’: illegal,left operandhastype 'float’error C2297: ’%' : illegal, right operand hastype'float’中文对照中文对照:%运算的左(右:%运算的左(右) )操作数类型为操作数类型为 fl flooatat,这是非法的,这是非法的分析分析:求余运算的对象必须均为 int 类型,应正确定义变量类型或使用强制类型转换error C2371:’xxx' : redefinition; different basic types中文对照中文对照:标识符标识符 xxxxx重定义;基类型不同x重定义;基类型不同分析分析:定义变量、数组等时重名errorC2440: '=' : cannot convert from’char[2] ' to 'char’中文对照中文对照:赋值运算,无法从字符数组转换为字符赋值运算,无法从字符数组转换为字符分析分析:不能用字符串或字符数组对字符型数据赋值,更一般的情况,类型无法转换error C2447: missing function header (old-style formal list?)errorC2448: '〈Unknown〉' : function-style initializerappearstobe a functiondefinition中文对照中文对照:缺少函数标题:缺少函数标题( (是否是老式的形式表?)是否是老式的形式表?)分析分析:函数定义不正确,函数首部的“ ( )"后多了分号或者采用了老式的 C 语言的形参表error C2450: switch expressionof type'xxx’is illegal中文对照中文对照:s:switwitch表达式为非法的xch表达式为非法的xx xx类型x类型分析分析:switch 表达式类型应为 int 或 charerror C2466: cannot allocateanarrayofconstant size 0中文对照中文对照:不能分配长度为不能分配长度为 0 0 的数组的数组分析分析:一般是定义数组时数组长度为 0error C2601: ’xxx’ : localfunction definitionsare illegal中文对照中文对照:函数函数 xxxxxx 定义非法定义非法分析分析:一般是在一个函数的函数体中定义另一个函数errorC2632: 'type1' followed by ’type2' is illegal中文对照中文对照:类型1后紧接着类型2,这是非法的类型1后紧接着类型2,这是非法的分析分析:例如“int float i;”语句error C2660: 'xxx’: function does not take n parameters中文对照中文对照:函数函数 xxxxx不能带x不能带 n n 个参数个参数分析分析:调用函数时实参个数不对,例如“sin(x,y);"error C2676:binary ’<<' : 'class istream_withassign’ does notdefine this operator or a conversionto a type acceptable to thepredefinedoperatorerrorC2676: binary ’>〉' : 'class ostream_withassign' doesnot definethis operator or aconversion to a type acceptableto the predefined----operator分析分析: “>>” 、 “ 〈<”运算符使用错误,例如“cin<<x; cout>>y;"error C4716: 'xxx' : must return avalue中文对照中文对照:函数x函数xx xx必须返回一个值x必须返回一个值分析分析:仅当函数类型为 void 时,才能使用没有返回值的返回命令。
fatalerror LNK1104: cannot openfile”Debug/Cpp1exe"中文对照中文对照:无法打开文件无法打开文件 D Deebug/Cpbug/Cppp1 1exexe分析分析:重新编译链接fatal error LNK1168: cannotopen Debug/Cpp1.exeforwriting中文对照中文对照:不能打开不能打开 DebugDebug//CppCpp1.ex1.exe e 文件文件分析分析:一般是 Cpp1exe 还在运行,未关闭fatal error LNK1169: oneor moremultiply definedsymbols found中文对照中文对照:出现一个或更多的多重定义符号出现一个或更多的多重定义符号分析分析:一般与 error LNK2005 一同出现errorLNK2001:unresolved external symbol _main中文对照中文对照:未处理的外部标识未处理的外部标识 mainmain分析分析:一般是 main拼写错误,例如“void mian()”error LNK2005: _main already defined in Cpp1。
obj中文对照中文对照:mmainain 函数已经在函数已经在 Cpp1Cpp1objobj 文件中定义文件中定义分析分析:未关闭上一程序的工作空间,导致出现多个 main函数warning C4067:unexpected tokens following preprocessor directive-expected a newline中文对照中文对照:预处理命令后出现意外的符号预处理命令后出现意外的符号 - -期待新行期待新行分析分析: “#include;"命令后的“;"为多余的字符warning C4091: '’ : ignored on left of ’type’ whennovariable is declared中文对照中文对照:当没有声明变量时忽略类型说明当没有声明变量时忽略类型说明分析分析:语句“int ;”未定义任何变量,不影响程序执行warning C4101:’xxx' :unreferenced local variable中文对照中文对照:变量变量 xxxxxx 定义了但未使用定义了但未使用分析分析:可去掉该变量的定义,不影响程序执行warning C4244: ’=' : conversionfrom'type1' to 'type2’, possible loss of data中文对照中文对照: :赋值运算,从数据类型赋值运算,从数据类型 1 1 转换为数据类型转换为数据类型 2, 2,可能丢失数据可能丢失数据分析分析:需正确定义变量类型,数据类型1为 float或 double、数据类型 2 为 int时,结果有可能不正确,数据类型 1 为 double、数据类型2为 float 时,不影响程序结果,可忽略该警告warning C4305:'initializing' : truncation from ’const double' to'float'中文对照中文对照:初始化,截取双精度常量为初始化,截取双精度常量为 f floloatat 类型类型分析分析:出现在对float类型变量赋值时,一般不影响最终结果warning C4390: ';' : empty controlled statement found; isthis the intent?中文对照中文对照:‘;’控制语句为空语句,是程序的意图吗?分析分析:if 语句的分支或循环控制语句的循环体为空语句,一般是多加了“;"----warningC4508: ’xxx’ : functionshould returna value; ' void' return type assumed中文对照中文对照:函数 xxx 应有返回值,假定返回类型为 void分析分析:一般是未定义 main 函数的类型为 void,不影响程序执行warning C4552:'operator’:operator hasno effect;expected operator with side-effect中文对照中文对照:运算符无效果;期待副作用的操作符分析分析:例如“i+j; ”语句, “+"运算无意义warning C4553:’==’ : operator has no effect; did you intend'=’?中文对照中文对照:“==”运算符无效;是否为“=”?分析分析:例如“i==j;"语句,“==”运算无意义warning C4700: localvariable’xxx' used without havingbeeninitialized中文对照中文对照:变量 xxx在使用前未初始化分析分析:变量未赋值,结果有可能不正确,如果变量通过 scanf 函数赋值,则有可能漏写“&”运算符,或变量通过 cin 赋值,语句有误warning C4715: ’xxx' : not all control paths returna value中文对照中文对照:函数xx不是所有控制路径都有返回值函数xx不是所有控制路径都有返回值分析分析:一般是在函数的 if语句中包含 return 语句,当 if 语句的条件不成立时没有返回值warning C4723: potentialdivide by 0中文对照中文对照:有可能被 0 除分析分析:表达式值为0时不能作为除数--。