c语言错误代码.docx
《c语言错误代码.docx》由会员分享,可在线阅读,更多相关《c语言错误代码.docx(12页珍藏版)》请在冰豆网上搜索。
c语言错误代码
编译器错误C2001 错误消息
常数中有换行符
字符串常数不能继续到第二行,除非进行下列操作:
•用反斜杠结束第一行。
•用一个双引号结束第一行上的字符串,并在下一行用另一个双引号开始该字符串。
用\n结束第一行是不够的。
编译器错误C2002 错误消息
无效的宽字符常数
多字节字符常数是非法的。
通过检查下面的可能原因进行修复
1.宽字符常数包含的字节比需要的多。
2.未包括标准头文件 STDDEF.h。
3.宽字符不能与一般字符串连接。
4.宽字符常数之前必须是字符“L”:
编译器错误C2003 错误消息
应输入“definedid”
标识符必须跟在预处理器关键字之后。
编译器错误C2004 错误消息
应为“defined(id)”
标识符必须出现在预处理器关键字之后的括号中。
也可能由于为VisualStudio.NET2003进行的编译器一致性工作生成此错误:
在预处理器指令中缺少括号。
如果预处理器指令缺少右括号,则编译器将生成一个错误。
编译器错误C2005 错误消息
#line应跟一个行号,却找到“token”
#line指令后面必须跟行号。
编译器错误C2006 错误消息
“directive”应输入文件名,却找到“token”
诸如#include或#import等指令需要文件名。
若要解决该错误,请确保token是一个有效文件名。
并且将该文件名放在双引号或尖括号中。
编译器错误C2007 错误消息
#define语法
#define后未出现标识符。
若要解决该错误,请使用标识符。
编译器错误C2008 错误消息
“character”:
宏定义中的意外
该字符紧跟在宏名之后。
若要解决该错误,宏名之后必须有一个空格。
编译器错误C2009 错误消息
宏形式“identifier”重复使用
宏定义的形参表多次使用该标识符。
宏的参数列表中的标识符必须是唯一的。
编译器错误C2010 错误消息
“character”:
宏形参表中的意外
该字符在宏定义的形参表中使用不正确。
移除该字符以解决该错误。
编译器错误C2011 错误消息
“identifier”:
“type”类型重定义
该标识符已定义为type类型。
如果多次将某个类型库导入同一个文件,也可能生成C2011。
编译器错误C2012 错误消息
在“<”之后缺少名称
#include指令缺少所需的文件名。
编译器错误C2013 错误消息
缺少“>”
#include指令缺少右尖括号。
添加右尖括号以解决该错误。
编译器错误C2014 错误消息
预处理器命令必须作为第一个非空白空间启动
预处理器指令的#符号必须是非空白行上的第一个字符。
编译器错误C2015 错误消息
常数中的字符太多
一个字符常数包含的字符多于两个。
标准字符常数只能包含一个字符,长字符常数只能包含两个字符。
转义序列(如\t)将被转换为单个字符。
当使用Microsoft扩展将字符常数转换为整数时,也可能发生C2015。
编译器错误C2017 错误消息
非法的转义序列
转义序列(如\t)出现在字符或字符串常数之外。
当stringize运算符与包括转义序列的字符串一起使用时会发生C2017。
编译器错误C2018 错误消息
未知字符“hexnumber”
源文件包含一个意外的ASCII字符,该字符由其十六进制数标识。
若要解决该错误,请移除该字符。
编译器错误C2019 错误消息
应找到预处理器指令,却找到“character”
该字符跟在#符号的后面,但它不是预处理器指令的第一个字母。
编译器错误C2020 错误消息
“member”:
“class”成员重定义
从基类或结构继承的成员被重定义。
不能重定义继承成员,除非它在基类中被声明为virtual。
编译器错误C2021 错误消息
应输入指数值,而非“character”
用作浮点常数的指数的字符是一个无效数字。
确保使用的指数在范围之内。
编译器错误C2022 错误消息
“number”:
对字符来说太大
字符或字符串常数中跟在反斜杠(\)后面的八进制数字太大,不能表示字符。
编译器错误C2026 错误消息
字符串太大,已截断尾部字符
该字符串的长度超过了16380个单字节字符的**。
连接相邻字符串之前,字符串的长度不能超过16380个单字节字符。
大约为此长度的一半的Unicode字符串也会生成此错误。
编译器错误C2027 错误消息
使用了未定义类型“type”
类型只有经过定义才能使用。
若要解决该错误,请确保在引用类型前已对其进行了完全定义。
有可能声明一个指向已声明但未定义的类型的指针。
但是VisualC++不允许引用未定义的类型。
编译器错误C2028 错误消息
结构/联合成员必须在结构/联合中
结构或联合成员必须在结构或联合内部声明。
编译器错误C2030 错误消息
“identifier”:
结构/联合成员重定义
结构或联合将同一标识符用于多个成员。
编译器错误C2032 错误消息
“identifier”:
函数不能是结构/联合“structorunion”的成员
该结构或联合中的一个成员函数在C++中允许使用而在C中却不允许。
若要解决该错误,请编译为C++ 程序或移除该成员函数。
编译器错误C2033 错误消息
“identifier”:
位域不能有间接寻址
该位域被声明为指针,这是不允许的。
编译器错误C2034 错误消息
“identifier”:
位域类型对于位数太小
该位域声明中位的数目超过了基类型的大小。
编译器错误C2036 错误消息
“identifier”:
未知的大小
对identifier的操作需要数据对象的大小,而该大小无法确定。
编译器错误C2039 错误消息
“identifier1”:
不是“identifier2”的成员
该代码错误调用或引用了结构、类或联合的成员。
编译器错误C2040 错误消息
“operator”:
“identifier1”与“identifier2”的间接寻址级别不同
涉及该运算符的表达式具有不一致的间接寻址级别。
如果两个操作数都是算术的或都是非算术的(如数组或指针),则不用更改就可使用它们。
如果一个操作数是算术的,而另一个不是,则算术运算符将转换为非算术类型。
编译器错误C2041 错误消息
非法的数字“character”(用于基“number”)
指定的字符不是基(如八进制或十六进制)的有效数字。
编译器错误C2042 错误消息
signed/unsigned关键字互相排斥
在单个声明中使用关键字signed和unsigned。
编译器错误C2043 错误消息
非法break
break仅在do、for、while或switch语句中合法。
编译器错误C2044 错误消息
非法continue
continue仅在do、for或while语句中合法。
编译器错误C2045 错误消息
“identifier”:
标签重定义
该标签出现在同一函数中的多条语句之前。
编译器错误C2046 错误消息
非法的case
关键字case只能出现在switch语句中。
编译器错误C2047 错误消息
非法的default
关键字default仅能出现在switch语句中。
编译器错误C2048 错误消息
默认值多于一个
switch语句包含多个default标签。
删除其中一个default标签可解决该错误。
编译器错误C2050 错误消息
switch表达式不是整型
switch表达式计算结果为一个非整数值。
若要解决该错误,请在switch语句中只使用整数值。
编译器错误C2051 错误消息
case表达式不是常数
Case表达式必须是整数常数。
编译器错误C2052 错误消息
“type”:
非法的case表达式类型
Case表达式必须是整数常数。
编译器错误C2053 错误消息
“identifier”:
宽字符串不匹配
宽字符串被分配给了一个不兼容的类型。
编译器错误C2054 错误消息
在“identifier”之后应输入“(”
该函数标识符用在需要尾部括号的上下文中。
导致该错误的可能原因是省略了复杂初始化上的等号(=)。
编译器错误C2055 错误消息
应输入形参表,而不是类型表
函数定义包含参数类型列表而不包含形参表。
ANSIC需要命名的形参,除非它们是void或是省略号(...)。
编译器错误C2056 错误消息
非法表达式
表达式因前一个错误而无效。
编译器错误C2057 错误消息
应输入常数表达式
上下文要求常数表达式,即其值在编译时已知的表达式。
编译器错误C2058 错误消息
常数表达式不是整型
该上下文需要整数常数表达式。
编译器错误C2059 错误消息
语法错误:
“token”
该标记导致语法错误。
若要确定原因,则不仅要检查在错误信息中列出的行,还要检查该行上面的行。
下面的示例对声明j的行生成了错误信息,而该错误的真正源却出现在其上面的行中。
如果对行的检查没有获得有关可能出现的问题的任何线索,则尝试注释掉在错误信息中列出的行以及可能出现在该行上面的若干行。
如果该错误信息在紧跟typedef变量的符号上出现,则检查该变量是否已在源代码中定义。
如果符号没有计算出任何结果(在使用/Dsymbol=编译时可能发生),可能会导致C2059。
可能收到C2059的另一个特定原因是编译在函数的默认参数中指定了结构的应用程序。
参数的默认值必须是一个表达式。
初始值设定项列表(如用于初始化结构的初始值设定项列表)不是表达式。
其解决方法是定义一个执行所需初始化的构造函数。
编译器错误C2060 错误消息
语法错误:
遇到文件结束
至少还需要一个标记。
编译器错误C2061 错误消息
语法错误:
标识符“identifier”
编译器发现了不应在此出现的标识符。
请确保在使用identifier之前对其进行声明。
初始值设定项可能括在了括号中。
为避免该问题,请将声明符括在括号中或使其成为typedef。
在编译器将表达式作为类模板参数检测时也可能导致此错误;使用typename告诉编译器它是一个类型。
编译器错误C2062 错误消息
意外的类型“type”
编译器不需要类型名称。
编译器处理构造函数的参数列表中未定义类型的方式也可能导致C2062。
如果编译器遇到未定义的(拼错了吗?
)类型,则它假定构造函数是一个表达式,并发出C2062。
若要解决此错误,请只使用构造函数参数列表中的定义类型。
编译器错误C2063 错误消息
“identifier”:
不是函数
该标识符用作函数,但未声明为函数。
编译器错误C2064 错误消息
项不会计算为接受“number”个参数的函数
通过表达式调用了函数。
该表达式未计算为函数指针。
编译器错误C2065 错误消息
“identifier”:
未声明的标识符
在可使用变量的类型前必须在声明中指定它。
在可以使用函数前必须在声明或原型中指定该函数使用的参数。
可能的原因:
1.您正在用C运行库的调试版本进行编译,在for循环中声明标准C++库迭代器变量,然后尝试在for循环范围外使用该迭代器变量。
用C运行库的调试版本编译标准C++库代码暗指使用/Zc:
forScope。
有关更多信息,请参见调试迭代器支持。
2.可能正在调用当前不受生成环境支持的SDK头文件中的函数。
3.省略必要的包含文件,尤其是在定义VC_EXTRALEAN、WIN32_LEAN_AND_MEAN或WIN32_EXTRA_LEAN时。
这些符号从windows.h和afxv_w32.h中排除了一些头文件以加快编译。
(在windows.h和afxv_w32.h中查找排除的头文件的最新说明。
)
4.标识符名拼写错误。
5.标识符使用了错误的大小写字母。
6.字符串常数的后面缺少右引号。
7.命名空间范围不正确。
例如,若要解析ANSIC++标准库函数和运算符,则必须用using指令指定std命名空间。
下面的示例未能编译,因为using指令被注释掉,并且在std命名空间中定义了cout:
编译器错误C2066 错误消息
转换到函数类型是非法的
在ANSIC中,函数指针和数据指针间的转换是非法的。
编译器错误C2067 错误消息
转换到数组类型是非法的
对象被转换成了数组类型。
编译器错误C2069 错误消息
“void”项到非“void”项的强制转换
类型void不能转换成任何其他类型。
编译器错误C2070 错误消息
“type”:
非法的sizeof操作数
sizeof运算符需要一个表达式或类型名称。
编译器错误C2071 错误