c语言错误的中英对照Word文档格式.docx
《c语言错误的中英对照Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言错误的中英对照Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
#definesyntax
#define语法错误
例如“#define”后缺少宏名,例如“#define”
errorC2008:
'
:
unexpectedinmacrodefinition
宏定义时出现了意外的xxx
宏定义时宏名与替换串之间应有空格,例如“#defineTRUE"
1"
”
C2009:
reuseofmacroformal'
带参宏的形式参数重复使用
宏定义如有参数不能重名,例如“#defines(a,a)(a*a)”中参数a重复
C2010:
character'
unexpectedinmacroformalparameterlist中文对照:
带参宏的参数表表现未知字符
例如“#define
s(r|)r*r”中参数多了一个字符‘|’
C2014:
preprocessorcommandmuststartasfirstnonwhitespace中文对照:
预处理命令前面只允许空格
每一条预处理命令都应独占一行,不应出现其他非空格字符
errorC2015:
toomanycharactersinconstant
常量中包含多个字符
字符型常量的单引号中只能有一个字符,或是以
“\”开始的一个转义字符
errorC2017:
illegalescapesequence
转义字符非法
一般是转义字符位于'
或"
"
之外,例如“charerror='
\n;
C2018:
unknowncharacter'
0xhh'
未知的字符0xhh
一般是输入了中文标点符号,例如“charerror='
E'
;
”中“;
”为中文标点符号
errorC2019:
expectedpreprocessordirective,found'
期待预处理命令,但有无效字符
一般是预处理命令的#号后误输入其他无效字符,例如“#!
defineTRUE1”
C2021:
expectedexponentvalue,not'
期待指数值,不能是字符
一般是浮点数的指数表示形式有误,例如123.456E
errorC2039:
identifier1'
isnotamemberof'
idenifier2'
标识符1不是标识符的成员
程序错误地调用或引用结构体、共用体、类的成员
C2048:
morethanonedefault
default语句多于一个
switch语句中只能有一个default,删去多余的default
errorC2050:
switchexpressionnotintegral
switch表达式不是整型的
switch表达式必须是整型(或字符型),例如“switch("
a"
)”中表达式为字符串,这是非法的
errorC2051:
caseexpressionnotconstant
case表达式不是常量
case表达式应为常量表达式,例如“case"
”中“"
”为字符串,这是非法的
errorC2052:
type'
illegaltypeforcaseexpression
case表达式类型非法
case表达式必须是一个整型常量(包括字符型)
errorC2057:
expectedconstantexpression
期待常量表达式
一般是定义数组时数组长度为变量,例如“intn=10;
inta[n];
”中n为变量,是非法的
C2058:
constantexpressionisnotintegral
常量表达式不是整数
一般是定义数组时数组长度不是整型常量
errorC2059:
syntaxerror:
‘xxx’语法错误
引起错误的原因很多,可能多加或少加了符号xxx
C2064:
termdoesnotevaluatetoafunction
无法识别函数语言
1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));
”中表达式不正确
2、变量与函数重名或该标识符不是函数,例如“inti,j;
j=i();
”中i不是函数
errorC2065:
undeclaredidentifier
未定义的标识符xxx
1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误
2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。
errorC2078:
toomanyinitializers
初始值过多
一般是数组初始化时初始值的个数大于数组长度,例如“int
b[2]={1,2,3};
errorC2082:
redefinitionofformalparameter'
重复定义形式参数xxx
函数首部中的形式参数不能在函数体
中再次被定义
C2084:
function'
alreadyhasabody
已定义函数xxx
在VC++早期版本中函数不能重名,6.0中支持函数的重载,函数名相同但参数不一样
errorC2086:
redefinition
标识符xxx重定义
变量名、数组名重名
errorC2087:
<
Unknown>
missingsubscript
下标未知
一般是定义二维数组时未指定第二维的长度,例如“inta[3][];
errorC2100:
illegalindirection
非法的间接访问运算符“*”
对非指针变量使用“*”运算
errorC2105:
operator'
needsl-value
操作符需要左值
例如“(a+b)++;
”语句,“++”运算符无效
errorC2106:
leftoperandmustbel-value
操作符的左操作数必须是左值
例如“a+b=1;
”语句,“=”运算符左值必须为变量,不能是表达式
errorC2110:
cannotaddtwopointers
两个指针量不能相加
例如“int*pa,*pb,*a;
a=pa+pb;
”中两个指针变量不能进行“+”运算
C2117:
arrayboundsoverflow
数组xxx边界溢出
一般是字符数组初始化时字符串长度大于字符数组长度,例如“charstr[4]=
"
abcd"
;
C2118:
negativesubscriptorsubscriptistoolarge
下标为负或下标太大
一般是定义数组或引用数组元素时下标不正确
errorC2124:
divideormodbyzero
被零除或对0求余分析:
例如“inti=1/0;
”除数为0
C2133:
unknownsize
数组xxx长度未知
一般是定义数组时未初始化也未指定数组长度,例如“inta[];
errorC2137:
emptycharacterconstant。
字符型常量为空
一对单引号“'
”中不能没有任何字符
errorC2143:
missing'
token1'
before'
token2'
errorC2146:
beforeidentifier'
在标识符或语言符号2前漏写语言符号1
可能缺少“{”、“)”或“;
”等语言符号
errorC2144:
)'
beforetype'
在xxx类型前缺少‘)’
一般是函数调用时定义了实参的类型
C2181:
illegalelsewithoutmatchingif
非法的没有与if相匹配的else
可能多加了“;
”或复合语句没有使用“{}”
C2196:
casevalue'
0'
alreadyused
case值0已使用
case后常量表达式的值不能重复出现
C2296:
%'
illegal,leftoperandhastype'
float'
errorC2297:
illegal,rightoperandhastype'
%运算的左(右)操作数类型为float,这是非法的
求余运算的对象必须均为int类型,应正确定义变量类型或使用强制类型转换
errorC2371:
redefinition;
differentbasictypes
标识符xxx重定义;
基类型不同
定义变量、数组等时重名
C2440:
='
cannotconvertfrom'
char[2]'
to'
char'
赋值运算,无法从字符数组转换为字符
不能用字符串或字符数组对字符型数据赋值,更一般的情况,类型无法转换
C2447:
missingfunctionheader(old-styleformallist?
)
C2448:
function-styleinitializerappearstobeafunction
definition
缺少函数标题(是否是老式的形式表?
函数定义不正确,函数首部的“()”后多了分号或者采用了老式的C语言的形参表
errorC2450:
switchexpressionoftype'
isillegal
switch表达式为非法的xxx类型
switch表达式类型应为int或char
C2466:
cannotallocateanarrayofconstantsize0
不能分配长度为0的数组
一般是定义数组时数组长度为0
C2601:
localfunctiondefinitionsareillegal
函数xxx定义非法
一般是在一个函数的函数体中定义另一个函数
errorC2632:
type1'
followedby'
type2'
类型1后紧接着类型2,这是非法的
例如“intfloati;
”语句
C2660:
functiondoesnottakenparameters
函数xxx不能带n个参数
调用函数时实参个数不对,例如“sin(x,y);
errorC2676:
binary'
classistream_withassign'
doesnotdefinethisoperator
oraconversiontoatypeacceptabletothepredefinedoperator
>
classostream_withassign'
“>
”、“<
”运算符使用错误,例如“cin<
x;
cout>
y;
C4716:
mustreturnavalue
函数xxx必须返回一个值
仅当函数类型为void时,才能使用没有返回值的返回命令。
LNK1104:
cannotopenfile"
Debug/Cpp1.exe"
无法打开文件Debug/Cpp1.exe
重新编译链接
LNK1168:
cannotopenDebug/Cpp1.exeforwriting
不能打开Debug/Cpp1.exe文件
一般是Cpp1.exe还在运行,未关闭
LNK1169:
oneormoremultiplydefinedsymbolsfound
出现一个或更多的多重定义符号。
一般与errorLNK2005一同出现
LNK2001:
unresolvedexternalsymbol_main
未处理的外部标识main
一般是main拼写错误,例如“voidmian()”
LNK2005:
_mainalreadydefinedinCpp1.obj
main函数已经在Cpp1.obj文件中定义
未关闭上一程序的工作空间,导致出现多个main函数
warning
C4067:
unexpectedtokensfollowingpreprocessordirective-expectedanewline
预处理命令后出现意外的符号-期待新行
“#include<
iostream.h>
”命令后的“;
”为多余的字符
warningC4091:
ignoredonleftof'
whennovariableisdeclared中文:
当没有声明变量时忽略类型说明
语句“int;
”未定义任何变量,不影响程序执行
C4101:
unreferencedlocalvariable
变量xxx定义了但未使用
可去掉该变量的定义,不影响程序执行
warningC4244:
conversionfrom'
possiblelossofdata
赋值运算,从数据类型1转换为数据类型2,可能丢失数据
需正确定义变量类型,数据类型1为float或double、数据类型2为int时,结果有可能不正确,数据类型1为double、数据类型2为float时,不影响程序结果,可忽略该警告
warningC4305:
initializing'
truncationfrom'
constdouble'
初始化,截取双精度常量为float类型
出现在对float类型变量赋值时,一般不影响最终结果
warningC4390:
emptycontrolledstatementfound;
isthistheintent?
‘;
’控制语句为空语句,是程序的意图吗?
if语句的分支或循环控制语句的循环体为空语句,一般是多加了“;
C4508:
functionshouldreturnavalue;
void'
returntypeassumed
函数xxx应有返回值,假定返回类型为void
一般是未定义main函数的类型为void,不影响程序执行
warningC4552:
operatorhasnoeffect;
expectedoperatorwithside-effect
运算符无效果;
期待副作用的操作符
例如“i+j;
”语句,“+”运算无意义
warningC4553:
=='
didyouintend'
?
“==”运算符无效;
是否为“=”?
例如
“i==j;
语句,“==”运算无意义
warningC4700:
localvariable'
usedwithouthavingbeeninitialized
变量xxx在使用前未初始化
变量未赋值,结果有可能不正确,如果变量通过scanf函数赋值,则有可能漏写“&
”运算符,或变量通过cin赋值,语句有误
C4715:
notallcontrolpathsreturnavalue
函数xx不是所有控制路径都有返回值
一般是在函数的if语句中包含return语句,当if语句的条件不成立时没有返回值
warningC4723:
potentialdivideby0
有可能被0除
表达式值为0时不能作为除数