所谓编译错误就是我们平常所说的bug。对于初级程序员来说,bug是常伴身边的,不夸张地说,写代码和改bug耗费的时间是一样的。而看完此系列文章后,便能读懂这些英文编译错误,有针对性地修改程序,大大缩短改bug的时间,从而省出更多时间学习新知识。
接下来,由黑马程序员C/C++学院为大家分享这些最常见的编译错误及分析(1~26):
1 fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译 分析:修改之前的错误,再次编译
2 fatal error C1004: unexpected end of file found 中文对照:(编译错误)文件未结束 分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等
3 fatal error C1083: Cannot open include file: 'xxx': No such file ordirectory 中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径 分析:头文件不存在、或者头文件拼写错误、或者文件为只读
4 fatal error C1903: unable to recover from previous error(s); stoppingcompilation 中文对照:(编译错误)无法从之前的错误中恢复,停止编译 分析:引起错误的原因很多,建议先修改之前的错误
5 error C2001: newline in constant 中文对照:(编译错误)常量中创建新行 分析:字符串常量多行书写
6 error C2006: #include expected a filename, found 'identifier' 中文对照:(编译错误)#include命令中需要文件名 分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h”
7 error C2007: #define syntax 中文对照:(编译错误)#define语法错误 分析:例如“#define”后缺少宏名,例如“#define”
8 error C2008: 'xxx' : unexpected in macro definition 中文对照:(编译错误)宏定义时出现了意外的xxx 分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”
9 error C2009: reuse of macro formal 'identifier' 中文对照:(编译错误)带参宏的形式参数重复使用 分析:宏定义如有参数不能重名,例如“#define s(a,a) (a*a)”中参数a重复
10 error C2010: 'character' : unexpected in macro formal parameter list 中文对照:(编译错误)带参宏的形式参数表中出现未知字符 分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’
11 error C2014: preprocessor command must start as first nonwhite space 中文对照:(编译错误)预处理命令前面只允许空格 分析:每一条预处理命令都应独占一行,不应出现其他非空格字符
12 error C2015: too many characters in constant 中文对照:(编译错误)常量中包含多个字符 分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“charerror = 'error';”
13 error C2017: illegal escape sequence 中文对照:(编译错误)转义字符非法 分析:一般是转义字符位于 ' ' 或 "" 之外,例如“char error = ' '\n;”
本篇文章为系列文章的第一篇,后续还有两篇文章继续为大家介绍最常见的编译错误及分析,希望大家看完后能有所收获。
|