如何申请深圳设计公司网站,产品摄影网站,装饰公司简易手机网站,盘锦化工网站建设更多干货推荐可以去牛客网看看#xff0c;他们现在的IT题库内容很丰富#xff0c;属于国内做的很好的了#xff0c;而且是课程刷题面经求职讨论区分享#xff0c;一站式求职学习网站#xff0c;最最最重要的里面的资源全部免费#xff01;#xff01;#xff01;点击进… 更多干货推荐可以去牛客网看看他们现在的IT题库内容很丰富属于国内做的很好的了而且是课程刷题面经求职讨论区分享一站式求职学习网站最最最重要的里面的资源全部免费点击进入--------------》跳转接口 更多干货推荐可以去牛客网看看他们现在的IT题库内容很丰富属于国内做的很好的了而且是课程刷题面经求职讨论区分享一站式求职学习网站最最最重要的里面的资源全部免费点击进入--------------》跳转接口 目录 绪论第一安装错误[1]Error spawning cl.exe[2]fatal error C1083: Cannot open include file:第二打开编译器失败提示不能打开第三cannot execute program解决方案第四连接Link.exe错误解决方案第五 error C2143: syntax error : missing ) before return解决方案第六涉及scanf输出结果为空的错误解决方案第七error C2065: a : undeclared identifiererror C2109: subscript requires array or pointer typeerror C2102: requires l-value第八error C2018: unknown character 0xa3error C2018: unknown character 0xac第九fatal error C1083: Cannot open include file: stduio.h: No such file or directory文字说明cannot open Debug/lalal.exe for writng executing link.exe.fatal error C1003: error count exceeds number; stopping compilationfatal error C1004: unexpected end of file foundfatal error C1083: Cannot open include file: ‘xxx’: No such file or directoryfatal error C1903: unable to recover from previous error(s); stopping compilationerror C2001: newline in constanterror C2006: #include expected a filename, found ‘identifier’error C2007: #define syntaxerror C2008: ‘xxx’ : unexpected in macro definitionerror C2009: reuse of macro formal ‘identifier’error C2010: ‘character’ : unexpected in macro formal parameter listerror C2014: preprocessor command must start as first nonwhite spaceerror C2015: too many characters in constanterror C2017: illegal escape sequenceerror C2018: unknown character ‘0xhh’error C2019: expected preprocessor directive, found ‘character’*error C2021: expected exponent value, not ‘character’*error C2039: ‘identifier1’ : is not a member of ‘identifier2’error C2041: illegal digit ‘x’ for base ‘n’error C2048: more than one defaulterror C2050: switch expression not integralerror C2051: case expression not constanterror C2052: ‘type’ : illegal type for case expressionerror C2057: expected constant expressionerror C2058: constant expression is not integralerror C2059: syntax error : ‘xxx’error C2064: term does not evaluate to a functionerror C2065: ‘xxx’ : undeclared identifiererror C2078: too many initializerserror C2082: redefinition of formal parameter ‘xxx’error C2084: function ‘xxx’ already has a bodyerror C2086: ‘xxx’ : redefinitionerror C2087: ‘’ : missing subscripterror C2100: illegal indirectionerror C2105: ‘operator’ needs l-valueerror C2296: ‘%’ : illegal, left operand has type ‘float’ error C2297: ‘%’ : illegal, right operand has type ‘float’error C2371: ‘xxx’ : redefinition; different basic typeserror C2440: ‘’ : cannot convert from ‘char [2]’ to ‘char’error C2447: missing function header (old-style formal list?) error C2448: ‘’ : function-style initializer appears to be a function definitionerror C2450: switch expression of type ‘xxx’ is illegalerror C2466: cannot allocate an array of constant size 0error C2601: ‘xxx’ : local function definitions are illegalerror C2632: ‘type1’ followed by ‘type2’ is illegalerror C2660: ‘xxx’ : function does not take n parameterserror C2664: ‘xxx’ : cannot convert parameter n from ‘type1’ to ‘type2’error C2676: binary ‘’ : ‘class istream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator error C2676: binary ‘’ : ‘class ostream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator 绪论
首先我们来分类一下几种常见错误
逻辑错误语法错误链接错误编译错误安装错误
第一安装错误 [1]Error spawning cl.exe
[2]fatal error C1083: Cannot open include file: 以上两种错误情况是一样的头文件没有放到安装目录下都是你在安装的时候路径选择错了怎么解决呢重新安装这不能解决问题的 解决方案 我们首先点击可执行文件然后在路径区将前四个路径分别做如下修改和我下边的地址设置成一样如果你的前四个文件路径和我下边的不一样那你就双击一下修改地址即可。 双击之后点击那三个点就可以选择文件路径了 接下来目录选择头文件include区域和上一步操作一样把路径地址换成我下面的路径记住如果这两你多余四行那你就删除删到只剩三行即可。 接下来选择目录如下同时修改前两行地址和下边的地址要一样多余行数删除处理 最后一步选择另外一个目录换掉前三行地址和如下地址要一样 做完如上操作之后点击确定在进行编译问题就解决了如果没有解决那就是你的某个目录下的文件没有按照我的地址来配对再检查一下就行了
第二打开编译器失败提示不能打开 这个问题的其实很简单的。解决方案
点击进入----下载该解压器安装好之后观察压缩包变成360zip之后就可以直接打开了
第三cannot execute program解决方案 问题导致原因 你添加的工程名字和文件名字不一致 解决方案 首先建好项目名字在建你的Csource时记得名字一定要一样还有不能用中文名字
第四连接Link.exe错误解决方案
错误原因 一个项目建了多个工程文件且名字不对应与第三错误类似 解决方案重新新建一个项目再建一个工程文件记得名字要一样
第五 error C2143: syntax error : missing ‘)’ before return’解决方案
当发现这个语句的时候发现只要我们对应去找提示错误的语句就可以了把失去的分号去掉就可以了 可是我们发现提示的语句是有分号的 这个时候我们要去该语句的上一句或是下一句去寻找分号是否有缺失双引号也是我们排查的目标 我们发现其实上一个语句缺了分号 这个错误是很多人都容易忽略的也是不容易看出来的但一定要有这个思路
第六涉及scanf输出结果为空的错误解决方案
我们在输入一个值后输出缺为空 排查错误步骤
输入语句格式【忘了地址符】输出语句格式【忘了逗号】变量定义数据类型【数据类型不匹配】 加上地址符之后就OK了
第七
error C2065: ‘a’ : undeclared identifier
error C2109: subscript requires array or pointer type
error C2102: ‘’ requires l-value 分析凡是发现连带错误的时候都要自顶向下的检查拍错看代码的时候也是自顶向下进行排查 错误解决方案 把for循环后边的分号去掉 你只要记住也就是循环选择结构的都不要再后边加分号。for和if不要再后边加分号。
第八
error C2018: unknown character ‘0xa3’
error C2018: unknown character ‘0xac’
我相信这个错误大家已经见得司空见惯了吧是不是一脸懵逼 解决方案 检查标点符号检查标点符号检查标点符号
注意你的标点符号有一个地方的标点用成了中文 发现句子外边的分号正常那就看中间句子的空格间隙是不是特别大如果大那就说明符号有问题
第九
fatal error C1083: Cannot open include file: ‘stduio.h’: No such file or directory
这个是不是特别眼熟 解决方案 观察头文件你的头文件拼错了 你们顺手就喜欢打一个u在上面正确头文件stdio.h 文字说明
cannot open Debug/lalal.exe for writng executing link.exe. 解决方案
fatal error C1003: error count exceeds number; stopping compilation
中文对照编译错误错误太多停止编译 分析修改之前的错误再次编译
fatal error C1004: unexpected end of file found
中文对照编译错误文件未结束 分析一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/„/”不完整等
fatal error C1083: Cannot open include file: ‘xxx’: No such file or directory
中文对照编译错误无法打开头文件xxx没有这个文件或路径 分析头文件不存在、或者头文件拼写错误、或者文件为只读
fatal error C1903: unable to recover from previous error(s); stopping compilation
中文对照编译错误无法从之前的错误中恢复停止编译 分析引起错误的原因很多建议先修改之前的错误
error C2001: newline in constant
中文对照编译错误常量中创建新行 分析字符串常量多行书写
error C2006: #include expected a filename, found ‘identifier’
中文对照编译错误#include命令中需要文件名 分析一般是头文件未用一对双引号或尖括号括起来例如“#include stdio.h”
error C2007: #define syntax
中文对照编译错误#define语法错误 分析例如“#define”后缺少宏名例如“#define”
error C2008: ‘xxx’ : unexpected in macro definition
中文对照编译错误宏定义时出现了意外的xxx 分析宏定义时宏名与替换串之间应有空格例如“#define TRUE”1””
error C2009: reuse of macro formal ‘identifier’
中文对照编译错误带参宏的形式参数重复使用 分析宏定义如有参数不能重名例如“#define s(a,a) (a*a)”中参数a重复
error C2010: ‘character’ : unexpected in macro formal parameter list
中文对照编译错误带参宏的形式参数表中出现未知字符 分析例如“#define s(r|) r*r”中参数多了一个字符‘|’
error C2014: preprocessor command must start as first nonwhite space
中文对照编译错误预处理命令前面只允许空格 分析每一条预处理命令都应独占一行不应出现其他非空格字符
error C2015: too many characters in constant
中文对照编译错误常量中包含多个字符 分析字符型常量的单引号中只能有一个字符或是以“\”开始的一个转义字符例如“char error ‘error’;”
error C2017: illegal escape sequence
中文对照编译错误转义字符非法 分析一般是转义字符位于 ’ ’ 或 ” ” 之外例如“char error ’ ‘\n;”
error C2018: unknown character ‘0xhh’
中文对照编译错误未知的字符0xhh 分析一般是输入了中文标点符号例如“char error ‘E’”中“”为中文标点符号
error C2019: expected preprocessor directive, found ‘character’
中文对照编译错误期待预处理命令但有无效字符 分析一般是预处理命令的#号后误输入其他无效字符例如“#!define TRUE 1”
error C2021: expected exponent value, not ‘character’
中文对照编译错误期待指数值不能是字符 分析一般是浮点数的指数表示形式有误例如123.456E
error C2039: ‘identifier1’ : is not a member of ‘identifier2’
中文对照编译错误标识符1不是标识符2的成员 分析程序错误地调用或引用结构体、共用体、类的成员
error C2041: illegal digit ‘x’ for base ‘n’
中文对照编译错误对于n进制来说数字x非法 分析一般是八进制或十六进制数表示错误例如“int i 081;”语句中数字‘8’不是八进制的基数
error C2048: more than one default
中文对照编译错误default语句多于一个 分析switch语句中只能有一个default删去多余的default
error C2050: switch expression not integral
中文对照编译错误switch表达式不是整型的 分析switch表达式必须是整型或字符型例如“switch (“a”)”中表达式为字符串这是非法的
error C2051: case expression not constant
中文对照编译错误case表达式不是常量 分析case表达式应为常量表达式例如“case “a””中“”a””为字符串这是非法的
error C2052: ‘type’ : illegal type for case expression
中文对照编译错误case表达式类型非法 分析case表达式必须是一个整型常量包括字符型
error C2057: expected constant expression
中文对照编译错误期待常量表达式 分析一般是定义数组时数组长度为变量例如“int n10; int a[n];”中n为变量这是非法的
error C2058: constant expression is not integral
中文对照编译错误常量表达式不是整数 分析一般是定义数组时数组长度不是整型常量
error C2059: syntax error : ‘xxx’
中文对照编译错误‘xxx’语法错误 分析引起错误的原因很多可能多加或少加了符号xxx
error C2064: term does not evaluate to a function
中文对照编译错误无法识别函数语言 分析1函数参数有误表达式可能不正确例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确2变量与函数重名或该标识符不是函数例如“int i,j; ji();”中i不是函数
error C2065: ‘xxx’ : undeclared identifier
中文对照编译错误未定义的标识符xxx 分析1如果xxx为cout、cin、scanf、printf、sqrt等则程序中包含头文件有误2未定义变量、数组、函数原型等注意拼写错误或区分大小写
error C2078: too many initializers
中文对照编译错误初始值过多 分析一般是数组初始化时初始值的个数大于数组长度例如“int b[2]{1,2,3};”
error C2082: redefinition of formal parameter ‘xxx’
中文对照编译错误重复定义形式参数xxx 分析函数首部中的形式参数不能在函数体中再次被定义
error C2084: function ‘xxx’ already has a body
中文对照编译错误已定义函数xxx 分析在VC早期版本中函数不能重名6.0版本中支持函数的重载函数名可以相同但参数不一样
error C2086: ‘xxx’ : redefinition
中文对照编译错误标识符xxx重定义 分析变量名、数组名重名
error C2087: ‘’ : missing subscript
中文对照编译错误下标未知 分析一般是定义二维数组时未指定第二维的长度例如“int a[3][];”
error C2100: illegal indirection
中文对照编译错误非法的间接访问运算符“” 分析对非指针变量使用“”运算
error C2105: ‘operator’ needs l-value
中文对照编译错误操作符需要左值 分析例如“(ab);”语句“”运算符无效
error C2296: ‘%’ : illegal, left operand has type ‘float’ error C2297: ‘%’ : illegal, right operand has type ‘float’
中文对照编译错误%运算的左(右)操作数类型为float这是非法的 分析求余运算的对象必须均为int类型应正确定义变量类型或使用强制类型转换
error C2371: ‘xxx’ : redefinition; different basic types
中文对照编译错误标识符xxx重定义基类型不同 分析定义变量、数组等时重名
error C2440: ‘’ : cannot convert from ‘char [2]’ to ‘char’
中文对照编译错误赋值运算无法从字符数组转换为字符 分析不能用字符串或字符数组对字符型数据赋值更一般的情况类型无法转换
error C2447: missing function header (old-style formal list?) error C2448: ‘’ : function-style initializer appears to be a function definition
中文对照编译错误缺少函数标题(是否是老式的形式表) 分析函数定义不正确函数首部的“( )”后多了分号或者采用了老式的C语言的形参表
error C2450: switch expression of type ‘xxx’ is illegal
中文对照编译错误switch表达式为非法的xxx类型 分析switch表达式类型应为int或char
error C2466: cannot allocate an array of constant size 0
中文对照编译错误不能分配长度为0的数组 分析一般是定义数组时数组长度为0
error C2601: ‘xxx’ : local function definitions are illegal
中文对照编译错误函数xxx定义非法 分析一般是在一个函数的函数体中定义另一个函数
error C2632: ‘type1’ followed by ‘type2’ is illegal
中文对照编译错误类型1后紧接着类型2这是非法的 分析例如“int float i;”语句
error C2660: ‘xxx’ : function does not take n parameters
中文对照编译错误函数xxx不能带n个参数 分析调用函数时实参个数不对例如“sin(x,y);”
error C2664: ‘xxx’ : cannot convert parameter n from ‘type1’ to ‘type2’
中文对照编译错误函数xxx不能将第n个参数从类型1转换为类型2 分析一般是函数调用时实参与形参类型不一致
error C2676: binary ‘’ : ‘class istream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator error C2676: binary ‘’ : ‘class ostream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator
分析“”、“”运算符使用错误例如“cin C语言常见编译错误及分析 1、fatal error C1003: error count exceeds number; stopping compilation2、fatal error C1004: unexpected end of file found3、fatal error C1083: Cannot open include file: xxx: No such file or directory4、fatal error C1903: unable to recover from previous error(s); stopping compilation5、error C2001: newline in constant6、error C2006: #include expected a filename, found identifier7、error C2007: #define syntax8、error C2008: xxx : unexpected in macro definition9、error C2009: reuse of macro formal identifier10、error C2010: character : unexpected in macro formal parameter list11、error C2014: preprocessor command must start as first nonwhite space12、error C2015: too many characters in constant13、error C2017: illegal escape sequence14、error C2018: unknown character 0xhh15、error C2019: expected preprocessor directive, found character16、error C2021: expected exponent value, not character17、error C2039: identifier1 : is not a member of identifier218、error C2041: illegal digit x for base n19、error C2048: more than one default20、error C2050: switch expression not integral21、error C2051: case expression not constant22、error C2052: type : illegal type for case expression23、error C2057: expected constant expression24、error C2058: constant expression is not integral25、error C2059: syntax error : xxx26、error C2064: term does not evaluate to a function27、error C2065: xxx : undeclared identifier28、error C2078: too many initializers29、error C2082: redefinition of formal parameter xxx30、error C2084: function xxx already has a body31、error C2086: xxx : redefinition32、error C2087: : missing subscript33、error C2100: illegal indirection34、error C2105: operator needs l-value35、error C2106: operator: left operand must be l-value36、error C2110: cannot add two pointers37、error C2117: xxx : array bounds overflow38、error C2118: negative subscript or subscript is too large39、error C2133: xxx : unknown size40、error C2137: empty character constant。41、error C2143: syntax error : missing token1 before token242、error C2146: syntax 4error : missing token1 before identifier identifier43、error C2144: syntax error : missing ) before type xxx44、error C2181: illegal else without matching if45、error C2196: case value 0 already used46、error C2296: % : illegal, left operand has type float47 error C2297: % : illegal, right operand has type float48、error C2371: xxx : redefinition; different basic types49、error C2440: : cannot convert from char [2] to char50、error C2447: missing function header (old-style formal list?)51、error C2448: : function-style initializer appears to be a function definition52、error C2450: switch expression of type xxx is illegal53、error C2466: cannot allocate an array of constant size 054、error C2601: xxx : local function definitions are illegal55、error C2632: type1 followed by type2 is illegal56、error C2660: xxx : function does not take n parameters57、error C2664: xxx : cannot convert parameter n from type1 to type258、error C2676: binary : class istream_withassign does not define this operator or a conversion to a type acceptable to the predefined operator error C2676: binary : class ostream_withassign does not define this operator or a conversion to a type acceptable to the predefined operator59、error C4716: xxx : must return a value60、fatal error LNK1104: cannot open file Debug/Cpp1.exe61、fatal error LNK1168: cannot open Debug/Cpp1.exe for writing62、fatal error LNK1169: one or more multiply defined symbols found63、error LNK2001: unresolved external symbol _main64、error LNK2005: _main already defined in Cpp1.obj65、warning C4003: not enough actual parameters for macro xxx66、warning C4067: unexpected tokens following preprocessor directive - expected a newline67、warning C4091: : ignored on left of type when no variable is declared68、warning C4101: xxx : unreferenced local variable69、warning C4244: : conversion from type1 to type2, possible loss of data70、warning C4305: initializing : truncation from const double to float71、warning C4390: ; : empty controlled statement found; is this the intent?72、warning C4508: xxx : function should return a value; void return type assumed73、warning C4552: operator : operator has no effect; expected operator with side-effect74、warning C4553: : operator has no effect; did you intend ?75、warning C4700: local variable xxx used without having been initialized76、warning C4715: xxx : not all control paths return a value77、warning C4723: potential divide by 078、warning C4804: : unsafe use of type bool in operation 转载自编程论坛-“自学的数学的帖子
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 TRUE1”
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.456E
17、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删去多余的default
20、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 n10; int a[n];”中n为变量这是非法的
24、error C2058: constant expression is not integral
中文对照(编译错误)常量表达式不是整数 分析一般是定义数组时数组长度不是整型常量
25、error C2059: syntax error : ‘xxx’
中文对照(编译错误)‘xxx’语法错误 分析引起错误的原因很多可能多加或少加了符号xxx
26、error C2064: term does not evaluate to a function
中文对照(编译错误)无法识别函数语言 分析1、函数参数有误表达式可能不正确例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确 2、变量与函数重名或该标识符不是函数例如“int i,j; ji();”中i不是函数
27、error C2065: ‘xxx’ : undeclared identifier
中文对照(编译错误)未定义的标识符xxx 分析1、如果xxx为cout、cin、scanf、printf、sqrt等则程序中包含头文件有误 2、未定义变量、数组、函数原型等注意拼写错误或区分大小写。
28、error C2078: too many initializers
中文对照(编译错误)初始值过多 分析一般是数组初始化时初始值的个数大于数组长度例如“int b[2]{1,2,3};”
29、error C2082: redefinition of formal parameter ‘xxx’
中文对照(编译错误)重复定义形式参数xxx 分析函数首部中的形式参数不能在函数体中再次被定义
30、error C2084: function ‘xxx’ already has a body
中文对照(编译错误)已定义函数xxx 分析在VC早期版本中函数不能重名6.0版本中支持函数的重载函数名可以相同但参数不一样
31、error C2086: ‘xxx’ : redefinition
中文对照(编译错误)标识符xxx重定义 分析变量名、数组名重名
32、error C2087: ‘’ : missing subscript
中文对照(编译错误)下标未知 分析一般是定义二维数组时未指定第二维的长度例如“int a[3][];”
33、error C2100: illegal indirection
中文对照(编译错误)非法的间接访问运算符“” 分析对非指针变量使用“”运算
34、error C2105: ‘operator’ needs l-value
中文对照(编译错误)操作符需要左值 分析例如“(ab);”语句“”运算符无效
35、error C2106: ‘operator’: left operand must be l-value
中文对照(编译错误)操作符的左操作数必须是左值 分析 例如“ab1;”语句“”运算符左值必须为变量不能是表达式
36、error C2110: cannot add two pointers
中文对照(编译错误)两个指针量不能相加 分析例如“int *pa,*pb,*a; a pa pb;”中两个指针变量不能进行“”运算
37、error C2117: ‘xxx’ : array bounds overflow
中文对照(编译错误)数组xxx边界溢出 分析一般是字符数组初始化时字符串长度大于字符数组长度例如“char str[4] “abcd”;”
38、error C2118: negative subscript or subscript is too large
中文对照(编译错误)下标为负或下标太大 分析一般是定义数组或引用数组元素时下标不正确 error C2124: divide or mod by zero 中文对照(编译错误)被零除或对0求余 分析例如“int i 1 / 0;”除数为0
39、error C2133: ‘xxx’ : unknown size
中文对照(编译错误)数组xxx长度未知 分析一般是定义数组时未初始化也未指定数组长度例如“int a[];”
40、error C2137: empty character constant。
中文对照(编译错误)字符型常量为空 分析一对单引号“’’”中不能没有任何字符
41、error C2143: syntax error : missing ‘token1’ before ‘token2’
42、error C2146: syntax 4error : missing ‘token1’ before identifier ‘identifier’
中文对照(编译错误)在标识符或语言符号2前漏写语言符号1 分析可能缺少“{”、“)”或“;”等语言符号
43、error C2144: syntax error : missing ‘)’ before type ‘xxx’
中文对照(编译错误)在xxx类型前缺少‘)’ 分析一般是函数调用时定义了实参的类型
44、error C2181: illegal else without matching if
中文对照(编译错误)非法的没有与if相匹配的else 分析可能多加了“;”或复合语句没有使用“{}”
45、error C2196: case value ‘0’ already used
中文对照(编译错误)case值0已使用 分析case后常量表达式的值不能重复出现
46、error C2296: ‘%’ : illegal, left operand has type ‘float’
47 error C2297: ‘%’ : illegal, right operand has type ‘float’
中文对照(编译错误)%运算的左(右)操作数类型为float这是非法的 分析求余运算的对象必须均为int类型应正确定义变量类型或使用强制类型转换
48、error C2371: ‘xxx’ : redefinition; different basic types
中文对照(编译错误)标识符xxx重定义;基类型不同 分析定义变量、数组等时重名
49、error C2440: ‘’ : cannot convert from ‘char [2]’ to ‘char’
中文对照(编译错误)赋值运算无法从字符数组转换为字符 分析不能用字符串或字符数组对字符型数据赋值更一般的情况类型无法转换
50、error C2447: missing function header (old-style formal list?)
51、error C2448: ‘’ : function-style initializer appears to be a function definition
中文对照(编译错误)缺少函数标题(是否是老式的形式表?) 分析函数定义不正确函数首部的“( )”后多了分号或者采用了老式的C语言的形参表
52、error C2450: switch expression of type ‘xxx’ is illegal
中文对照(编译错误)switch表达式为非法的xxx类型 分析switch表达式类型应为int或char
53、error C2466: cannot allocate an array of constant size 0
中文对照(编译错误)不能分配长度为0的数组 分析一般是定义数组时数组长度为0
54、error C2601: ‘xxx’ : local function definitions are illegal
中文对照(编译错误)函数xxx定义非法 分析一般是在一个函数的函数体中定义另一个函数
55、error C2632: ‘type1’ followed by ‘type2’ is illegal
中文对照(编译错误)类型1后紧接着类型2这是非法的 分析例如“int float i;”语句
56、error C2660: ‘xxx’ : function does not take n parameters
中文对照(编译错误)函数xxx不能带n个参数 分析调用函数时实参个数不对例如“sin(x,y);”
57、error C2664: ‘xxx’ : cannot convert parameter n from ‘type1’ to ‘type2’
中文对照(编译错误)函数xxx不能将第n个参数从类型1转换为类型2 分析一般是函数调用时实参与形参类型不一致
58、error C2676: binary ‘’ : ‘class istream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator error C2676: binary ‘’ : ‘class ostream_withassign’ does not define this operator or a conversion to a type acceptable to the predefined operator
分析“”、“”运算符使用错误例如“ciny;”
59、error C4716: ‘xxx’ : must return a value
中文对照(编译错误)函数xxx必须返回一个值 分析仅当函数类型为void时才能使用没有返回值的返回命令。
60、fatal error LNK1104: cannot open file “Debug/Cpp1.exe”
中文对照(链接错误)无法打开文件Debug/Cpp1.exe 分析重新编译链接
61、fatal error LNK1168: cannot open Debug/Cpp1.exe for writing
中文对照(链接错误)不能打开Debug/Cpp1.exe文件以改写内容。 分析一般是Cpp1.exe还在运行未关闭
62、fatal error LNK1169: one or more multiply defined symbols found
中文对照(链接错误)出现一个或更多的多重定义符号。 分析一般与error LNK2005一同出现
63、error LNK2001: unresolved external symbol _main
中文对照(链接错误)未处理的外部标识main 分析一般是main拼写错误例如“void mian()”
64、error LNK2005: _main already defined in Cpp1.obj
中文对照(链接错误)main函数已经在Cpp1.obj文件中定义 分析未关闭上一程序的工作空间导致出现多个main函数
65、warning C4003: not enough actual parameters for macro ‘xxx’
中文对照(编译警告)宏xxx没有足够的实参 分析一般是带参宏展开时未传入参数
66、warning C4067: unexpected tokens following preprocessor directive - expected a newline
中文对照(编译警告)预处理命令后出现意外的符号 - 期待新行 分析“#include;”命令后的“;”为多余的字符
67、warning C4091: ‘’ : ignored on left of ‘type’ when no variable is declared
中文对照(编译警告)当没有声明变量时忽略类型说明 分析语句“int ;”未定义任何变量不影响程序执行
68、warning C4101: ‘xxx’ : unreferenced local variable
中文对照(编译警告)变量xxx定义了但未使用 分析可去掉该变量的定义不影响程序执行
69、warning C4244: ‘’ : conversion from ‘type1’ to ‘type2’, possible loss of data
中文对照(编译警告)赋值运算从数据类型1转换为数据类型2可能丢失数据 分析需正确定义变量类型数据类型1为float或double、数据类型2为int时结果有可能不正确数据类型1为double、数据类型2为float时不影响程序结果可忽略该警告
70、warning C4305: ‘initializing’ : truncation from ‘const double’ to ‘float’
中文对照(编译警告)初始化截取双精度常量为float类型 分析出现在对float类型变量赋值时一般不影响最终结果
71、warning C4390: ‘;’ : empty controlled statement found; is this the intent?
中文对照(编译警告)‘;’控制语句为空语句是程序的意图吗? 分析if语句的分支或循环控制语句的循环体为空语句一般是多加了“;”
72、warning C4508: ‘xxx’ : function should return a value; ‘void’ return type assumed
中文对照(编译警告)函数xxx应有返回值假定返回类型为void 分析一般是未定义main函数的类型为void不影响程序执行 c语言的错误对照表———— 在遇到错误时可以对照查看
73、warning C4552: ‘operator’ : operator has no effect; expected operator with side-effect
中文对照(编译警告)运算符无效果;期待副作用的操作符 分析例如“ij;”语句“”运算无意义
74、warning C4553: ‘’ : operator has no effect; did you intend ‘’?
中文对照(编译警告)“”运算符无效;是否为“”? 分析例如 “ij;” 语句“”运算无意义
75、warning C4700: local variable ‘xxx’ used without having been initialized
中文对照(编译警告)变量xxx在使用前未初始化 分析变量未赋值结果有可能不正确如果变量通过scanf函数赋值则有可能漏写“”运算符或变量通过cin赋值语句有误
76、warning C4715: ‘xxx’ : not all control paths return a value
中文对照(编译警告)函数xxx不是所有的控制路径都有返回值 分析一般是在函数的if语句中包含return语句当if语句的条件不成立时没有返回值
77、warning C4723: potential divide by 0
中文对照(编译警告)有可能被0除 分析表达式值为0时不能作为除数
78、warning C4804: ‘’ : unsafe use of type ‘bool’ in operation
中文对照(编译警告)‘’不安全的布尔类型的使用 分析例如关系表达式“0x10”有可能引起逻辑错误
参考
C语言常见编译错误及分析
C语言常见编译错误分类及其解决方案