VC中的常见错误提示解释
1、1. error C2001: newline inconstant 编号:C2001
直译:在常量中出现了换行。 错误分析:
(1) 字符串常量、字符常量中是否有换行。
(2) 在这句语句中,某个字符串常量的尾部是否漏掉了双引号。
(3) 在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"”。
(4) 在这句语句中,某个字符常量的尾部是否漏掉了单引号。
(5) 是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。
2、2. error C2015: too manycharacters in constant 编号:C2015
直译:字符常量中的字符太多了。 错误分析:
单引号表示字符型常量。一般的,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。
另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如: if (x == 'x || x== 'y') { … }
值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。
两个单引号之间不加任何内容会引发如下错误:error C2137:empty character constant。
3、3. error C2018: unknowncharacter '0x##' 编号:C2018
直译:未知字符„0x##‟。 错误分析:
0x##是字符ASC码的16进制表示法。这里说的未知字符,通常是指全角符号、字母、数字,或者直接输入了汉字。如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。
4. error C2041: illegal digit'#' for base '8' 编号:C2141
直译:在八进制中出现了非法的数字„#‟(这个数字#通常是8或者9)。 错误分析:
如果某个数字常量以“0”开头(单纯的数字0除外),那么编译器会认为这是一个8进制数字。例如:“089”、“078”、“093”都是非法的,而“071”是合法的,等同于是进制中的“57”。
4、5. error C2086: 'xxxx' :redefinition 编号:C2374
直译:“xxxx”重复申明。 错误分析:
变量“xxxx”在同一作用域中定义了多次。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。
6. error C2374: 'xxxx' :redefinition; multiple initialization 编号:C2374
直译:“xxxx”重复申明,多次初始化。 错误分析:
变量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。
5、7. C2143: syntax error :missing ';' before (identifier) 'xxxx' 编号:C2143
直译:在(标志符)“xxxx”前缺少分号。 错误分析:
这是VC6的编译期最常见的误报,当出现这个错误时,往往所指的语句并没有错误,而是它的上一句语句发生了错误。其实,更合适的做法是编译器报告在上一句语句的尾部缺少分号。上一句语句的很多种错误都会导致编译器报出这个错误: (1) 上一句语句的末尾真的缺少分号。那么补上就可以了。
(2) 上一句语句不完整,或者有明显的语法错误,或者根本不能算上一句语句(有时候是无意中按到键盘所致)。
(3) 如果发现发生错误的语句是cpp文件的第一行语句,在本文件中检查没有错误,而且这个文件使用双引号包含了某个头文件,那么检查这个头文件,在这个头文件的尾部可能有错误。
var cpro_psid ="u2572954"; var cpro_pswidth =966; varcpro_psheight =120;
6、8. error C2137: emptycharacter constant 编号:C2137
直译:空的字符定义。 错误分析:
原因是连用了两个单引号,而中间没有任何字符。一般的,单引号表示字符型常量,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待)。两个单引号之间不加任何内容是不允许的。
需要注意的是:如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。
如果单引号中的字符数多于4个,会引发2015错误:error C2015: toomany characters in constant。
7、9. error C2374: 'xxxx' :redefinition; multiple initialization 编号:C2374
直译:“xxxx”重复申明,多次初始化。 错误分析:
变量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。