文档介绍:--------------------------校验:_____________-----------------------日期::invaliduseofvoidexpression,是因为有void型的变量或者函数返回值被使用了。例如:printf("%d\n",sum(1,2));voidsum(inta,intb){ints=a+b;}这里printf的第二个参数就是void,无法打印就会出现这样的错误。:newlineinconstant直译:在常量中出现了换行。错误分析:1.①字符串常量、字符常量中是否有换行。2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号。3.③在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"”。4.④在这句语句中,某个字符常量的尾部是否漏掉了单引号。5.⑤是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。:toomanycharactersinconstant编号:C2015直译:字符常量中的字符太多了。错误分析:单引号表示字符型常量。一般的,单引号中必须有且只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:if(x=='x||x=='y'){…}值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。:emptycharacterconstant编号:C2137直译:空的字符定义。错误分析:原因是连用了两个单引号,而中间没有任何字符,这是不允许的。:unknowncharacter'0x##'编号:C2018直译:未知字符‘0x##'。错误分析:0x##是字符ASC码的16进制表示法。这里说的未知字符,通常是指全角符号、字母、数字,或者直接输入了汉字。如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。:illegaldigit'#'forbase'8'编号:C2141直译:在八进制中出现了非法的数字‘#'(这个数字#通常是8或者9)。错误分析:如果某个数字常量以“0”开头(单纯的数字0除外),那么编译器会认为这是一个8进制数字。例如:“089”、“078”、“093”都是非法的,而“071”是合法的,等同于是进制中的“57”。:'xxxx':undeclaredidentifier编号:C2065直译:标识符“xxxx”未定义。错误分析:首先,解释一下什么是标识符。标志符是程序中出现的除关键字之外的词,通常由字母、数字和下划线组成,不能以数字开头,不能与关键字重复,并且区分大小写。变量名、函数名、类名、常量名等等,都是标志符。所有的标志符都必须先定义,后使用。标志符有很多种用途,所以错误也有很多种原因。“xxxx”是一个变量名,那么通常是程序员忘记了定义这个变量,或者拼写错误、大小