多语言展示
当前在线:1581今日阅读:60今日分享:41

VC中的常见错误提示解释

在C语言中的常见错误提示解释
工具/原料
1

电脑

2

VC软件

方法/步骤
1

1. error C2001: newline in constant 编号:C2001 直译:在常量中出现了换行。 错误分析: (1) 字符串常量、字符常量中是否有换行。 (2) 在这句语句中,某个字符串常量的尾部是否漏掉了双引号。 (3) 在这语句中,某个字符创常量中是否出现了双引号字符“'”,但是没有使用转义符“\'”。 (4) 在这句语句中,某个字符常量的尾部是否漏掉了单引号。 (5) 是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。

2

2. error C2015: too many characters in constant 编号:C2015直译:字符常量中的字符太多了。 错误分析:单引号表示字符型常量。一般的,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如: if (x == 'x || x == 'y') { … }值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。两个单引号之间不加任何内容会引发如下错误:error C2137: empty character constant。

3

3. error C2018: unknown character '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; var cpro_psheight =120;

6

8. error C2137: empty character constant 编号:C2137直译:空的字符定义。 错误分析:原因是连用了两个单引号,而中间没有任何字符。一般的,单引号表示字符型常量,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待)。两个单引号之间不加任何内容是不允许的。需要注意的是:如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。如果单引号中的字符数多于4个,会引发2015错误:error C2015: too many characters in constant。

7

9. error C2374: 'xxxx' : redefinition; multiple initialization 编号:C2374直译:“xxxx”重复申明,多次初始化。 错误分析:变量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。

推荐信息