2022年C++程序编译中常见错 .pdf
C+课程上机实验常见错误汇集1在源码中遗失“; ”调试器错误信息:syntax error : missing ; 2缺少命名空间使用定义:即缺少“using namespace std;”调试器错误信息:例:error C2065: cout : undeclared identifier 例如 cout/cin/endl/ 等在命名空间中定义的符号和标示符无法使用。3变量未定义就直接使用调试器错误信息:例:error C2065: i : undeclared identifier C+语言中,变量的使用必需遵循先声明定义,后使用的原则。4在程序中使用中文标示符,如将英文”;”错误输入成了” ; ”调试器错误信息:error C2018: unknown character 0 xa3 在 C+中,除程序注释可以采用中文外,其余字符要求使用英文。不少同学在建立工程或程序名称时也使用中文名称,建议改掉这种习惯。5在使用输入输出流的时候错误使用了标示符“” “a; 调 试 器 错 误 信 息 : 例 : error C2676: binary : class std:basic_ostreamchar,struct std:char_traits does not define this operator or a conversion to a type acceptable to the predefined operator 对于流操作的方向搞错是一个普遍错误,问题本来并不复杂,可能是由于没有认真看书的原因。6定义的变量类型与使用不对应,如声明为float,但实际给与了一个double 的值,例:float pi=3.412345245656245; 调试器错误信息:warning C4305: initializing : truncation from const double to float 7变量在赋值之前就使用,例:int a, b, c; c=a+b; cinab; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 调试器错误信息:warning C4700: local variable a used without having been initialized 出现这种错误主要是对面向过程的程序执行没有理解。8在一个工程中包含多于一个的main 函数error C2556: int _cdecl main(void) : overloaded function differs only by return type from void _cdecl main(void) E:tempalskdfldid.cpp(4) : see declaration of main E:tempalskdfldid.cpp(15) : error C2371: main : redefinition; different basic types 在上机课中始终有同学犯这种错误,原因可能是从来没有上过机。9在函数定义的()后面使用分号例: void chang(); , 调试器错误信息:error C2447: missing function header (old-style formal list?) 10函数声明 /定义 /调用参数个数不匹配. 例: void chang(int a,int b, float c) void main() chang(3,4); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 调试器错误信息:error C2660: chang : function does not take 2 parameters 最常见的20 种 VC+ 编译错误信息1、atal error C1010: unexpected end of file while looking for precompiled header directive。寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include stdafx.h )2、fatal error C1083: Cannot open include file: R ,.h: No such file or directory 不能打开包含文件“R,.h” :没有这样的文件或目录。3、error C2011: C,: class type redefinition 类“ C, ”重定义。4、error C2018: unknown character 0 xa3 不认识的字符 0 xa3。 (一般是汉字或中文标点符号)5、error C2057: expected constant expression 希望是常量表达式。 (一般出现在switch 语句的 case分支中)6、error C2065: IDD_MYDIALOG : undeclared identifier “IDD_MYDIALOG” :未声明过的标识符。7、error C2082: redefinition of formal parameter bReset 函数参数“ bReset”在函数体中重定义。8、error C2143: syntax error: missing : before 句法错误:“ ”前缺少“;” 。9、error C2146: syntax error : missing ; before identifier dc 句法错误:在“dc”前丢了“; ” 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 10、 error C2196: case value 69 already used 值 69 已经用过。(一般出现在switch 语句的 case分支中)11、 error C2509: OnTimer : member function not declared in CHelloView 成员函数“ OnTimer”没有在“ CHelloView ”中声明。12、 error C2511: reset: overloaded member function void (int) not found in B 重载的函数“ void reset(int) ”在类“ B”中找不到。13、 error C2555: B:f1: overriding virtual function differs from A:f1 only by return type or calling convention 类 B 对类 A 中同名函数f1 的重载仅根据返回值或调用约定上的区别。14、 error C2660: SetTimer : function does not take 2 parameters “SetTimer”函数不传递2 个参数。15、 warning C4035: f ,: no return value “f, ”的return 语句没有返回值。16、 warning C4553: = = : operator has no effect; did you intend =? 没有效果的运算符“= =” ;是否改为“ =”?17、 warning C4700: local variable bReset used without having been initialized 局部变量“ bReset”没有初始化就使用。18、 error C4716: CMyApp:InitInstance : must return a value “CMyApp:InitInstance ”函数必须返回一个值。19、 LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing 连接错误:不能打开P1.exe 文件,以改写内容。 (一般是P1.Exe 还在运行,未关闭)20、 error LNK2001: unresolved external symbol public: virtual _ _thiscall C,:C,(void) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 连接时发现没有实现的外部符号(变量、函数等)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -