VC++常见错误
- 格式:doc
- 大小:4.43 MB
- 文档页数:21
Visual C++ 2010入门教程作者:董波日期:2010.06.14Baidi Blog:/new/dbfr2011818寻梦不止,学习不止。
天行健,君子以自强不息;地势坤,君子以厚德载物。
organized by denova@2012.05.24写在前面在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。
因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。
现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。
记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。
接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。
刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。
内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。
由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。
注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。
《Visual C++ 2010入门教程》写在前面在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。
因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC 和C++的区别是什么。
现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。
记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊.接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。
刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的.内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。
由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。
注意,本教程非C++教程,不会教你C++,只会教你如何使用Visual C++ 2010去练习去学习其它C++教材上面的程序。
因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。
推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。
程序游戏不再出错!Windows常用运行库下载(DirectX、VC++、.Net Framework等)经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么d3dx9_xx.dll 或msvcp71.dll、msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常使用,其实很多时候,只是因为你的电脑没有安装好这些软件所需要的运行库(又称“运行时”Runtime)而已。
在Windows环境下,很多软件特别是游戏需要依赖一些运行库才能正常使用,而它们很多都是没有集成在Windows里的,需要我们自行安装(所需的运行库一般在软件或游戏的说明里会有提及)。
我们最常见的有DirectX、VC++运行库和.Net Framework等……没有安装好必要的运行库而导致不能运行软件游戏的用户实在太多太多了,我几乎隔两三天就收到一封这样的求助信。
其实,我认为很多这类问题并不是用户太笨,而是微软的错!!为什么?譬如说我安装好一个游戏,没有安装好DirectX(这货几乎是所有3D游戏必备),运行游戏时Windows提示我缺少d3dx9_42.dll ,对于普通用户,马上就傻眼了,我TM谁认识你神马dll文件啊,然后就只能Google一下或求助有经验的朋友了。
然而,如果微软能做得细致一点,将错误提示改成“你丫没有安装DirectX,运行此软件前必须先安装这货,点击这里下载”之类的话儿,不笨的用户都会去下载并安装了。
从这点可以看出,微软很多时候都是没有站在用户的角度去开发产品。
虽然它很多产品技术上很优秀,但正是一些细节的忽略,导致它的产品不够易用,对普通用户来说显得太过复杂太过“专业”。
而隔壁苹果的产品理念则追求简单,将“专业”的东西隐藏起来不需用户去花精力了解学习,这也从一方面看出为什么最近几年苹果崛起得特别快。
当然,这是一个大话题,这里不做更深一层的讨论。
DirectX是微软提供开发人员一个包括3D、声音、网络等多媒体的一个共同的应用程序编程接口,它让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
1. Warning 280:’i’:unreferenced local variable说明局部变量i 在函数中未作任何的存取操作解决方法消除函数中i 变量的宣告及即定义的参数在程序中并未调用2 Warning 206:’Music3’:missing function-prototype说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告3Error:318:can’t open file ‘beep.h’说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#i nclude “beep.h”,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中4 Error 237:’LedOn’:function already has a body说明LedOn( )函数名称重复定义即有两个以上一样的函数名称解决方法修正其中的一个函数名称使得函数名称都是独立的5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_DELAYX1MS?DELAY说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间解决方法去掉DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAPFROM : 0025HTO: 0025H说明外部资料ROM 的0025H 重复定义地址解决方法外部资料ROM 的定义如下Pdata unsigned charXFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在0x25 处并修正它7 WARNING 206:’DelayX1ms’: missing function-prototype C:\8051\INPUT.CError 267 :’DelayX1ms ‘:requires ANSI-style prototypeC:\8051\INPUT.C说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作宣告解决方法编写DelayX1ms 的内容编写完后也要作宣告或作外部宣告可在delay.h 的包含档宣告成外部以便其它函数调用8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3解决办法:1.是文件没有添加到工程里。
D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(25) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(26) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(27) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(28) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(29) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(30) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(31) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(32) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(33) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(33) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(33) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(33) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(34) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(34) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(34) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(34) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(35) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(36) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(37) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(38) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(39) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(40) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio(40) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(18) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(20) : error C2059: 语法错误: “:”2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(21) : error C2143: 语法错误: 缺少“{”(在“:”的前面)2>D:\Program Files\Microsoft Visual Studio 8\VC\include\cstdlib(21) : fatal error C1003: 错误计数超过100;正在停止编译2>生成日志保存在“file://d:\mutualregistration2\bin\ImageRegistration.dir\Debug\BuildLog.htm”2>ImageRegistration - 102 个错误,个警告解决方案是把.C 改为.CPP文件,在项目—属性——C/C++ 高级中——改为编译为 C++ 代码(/TP)。
VC的工程设置解读Project—SettingsVC工程设置可能会直接影响到工程的正确性,有时是BUG产生的直接原因,在出现莫名其妙的错误,首先应考虑到是否是工程设置有问题,这无论对于开发还是测试,都是很必要的,本文大致介绍一下工程设置选项。
工程选项的快捷建是Alt+F7, 左边的列表可以选择要设置的工程编译方式(Debug或Release),如果多个工程,还可以选择要设置的工程。
右边是一个属性页,内容十分丰富,依次是:General , Debug , C/C++ , Link , Resource , MIDL , Browse Info , Custom Build , Pre-link Step , Post-build step下面主要介绍一下我们常用到的选项:一、General: 设置工程的一般特性,组合框为是否选用MFC静态库,默认为共享的DLL方式,对一些不支持MFC42的机器环境来说,选择静态编译还是有必要的。
底下的两个编辑框表示编译中的文件输出路径。
二、Debug:设置工程调试的选项。
1.Excutable for debug session : 如果是dll的工程,需要指定启动它的exe文件路径,如果是exe工程,默认当前工程。
2.Work directory 设置调试程序的工作路径,默认exe当前路径3.Program arguments 程序启动命令行参数,作控制台程序的时候经常要用三、C/C++ : 这一页内容很多,选择项通过Category(种类)来设置,包括:1.General2.Warning leve 警告级别,VC默认为3,一般不更改3.Optimizations优化级别,DEBUG下设为Disable(Debug),就是不优化,在追求效率或者编译结果的时候可以选择最大速度或最小尺寸的选项,不过微软不保证优化的准确性。
4.Waring as error : 不用多说了,经常忽略警告的人不会选这项吧?5.Generate browse info : 产生浏览信息,在编辑调试加了一些功能,单会产生很大的编译文件,建议不要选。
C语⾔常见错误分析C语⾔常见错误分析:错误分类:语法错、逻辑错、运⾏错。
0.忘记定义变量:main(){x=3;y=6;printf(“%d\n”,x+y);1.C语⾔的变量⼀定要先定义才能使⽤;2.输⼊输出的数据的类型与所⽤格式说明符不⼀致int a=3;float b=4.5;printf(“%f%d\n”,a,b);它们并不是按照赋值的规则进⾏转换(如把4.5转换为4),⽽是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出) 3.未注意int型数据的数值范围int型数据的数值范围(-32768~32768)int num=89101;printf(“%d”,num);会将超过低16位的数截去从⽽得到23563注意:定义了long型,⽽在输出时仍⽤”%d”说明符,仍会出现以上错误4.输⼊变量时忘记使⽤地址符scanf(“%d%d”,a,b);5.输⼊时数据的组织与要求不符对scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输⼊6.误把”=“作为”等于”⽐较符“=“为附值运算符“==“为⽐较运算符7.语句后⾯漏分号{t=a;a=b;b=t}它是pascal的语法8.不该加分号的地⽅加了分号if(a>b);printf(“a is larger than b\n”);for(i=0;i<10;i++);scanf(“%d”,&x);printf(“%d\n”,x*x);}9.对应该有花括弧的复合语句,忘记加花括弧sum=0;i=1;while(i<=100)sum=sum+1;i++;10.括弧不配对while((c=getchar()!=‘#’)putchar(c);11.在⽤标识时,忘记了⼤写字母和⼩写字母的区别{int a,b,c;a=2;b=3;C=A+B;printf(“%d+%d=%D”,A,B,C);}12.引⽤数组元素时误⽤发圆括弧{int i,a(10);for(i=0;i<10;i++)scanf(“%d”,&a(i));}13.在定义数组时,将定义的”元素个数”误认为是”可使⽤的最⼤下标值{ int a[10]={1,2,3,4,5,6,7,8,9,10};int i;for(i=1;i<=10;i++)printf(“%d”,a[i]);}14.对⼆维或多维数组的定义和引⽤的⽅法不对{int a[5,4];printf(“%d”,a[1+2,2+2]);…}15.误以为数组名代表数组中全部元素{int a[4]={1,2,3,4};printf(“%d%d%d%d”,a);}16.混淆字符数组与字符指针的区别main(){char str[40];str=“Computer and c”;printf(“%s\n”,str);}17.在引⽤指针变量之前没有对它赋予确定的值{ char *p;scanf(“%s”,p);}{char *p,c[20];p=c;scanf(“%s”,p);}18.switch语句的各分⽀中漏写 break语句混淆字符和字符串的表⽰形式…char sex;sex=“M”;…19.使⽤⾃加(++)和⾃减(--)运算符时出的错误{int *p,a[5]={1,3,5,7,9};p=a;printf(“%d”,*p++);注意于*(++p)的区别;20.所调⽤的函数在调⽤语句之后才定义,⽽⼜在调⽤前未加说明main() {float x,y,z;x=3.5;y=-7.6;z=max(x,y);printf(“%f”,z);}float max(float x,float y){return (x>y?x:y);}21.误认为形参值的改变会影响实参的值swap(int x,int y){int t;t=x;x=y;y=t;}main(){int a,b;a=3;b=4;swap(a,b);printf(“%d,%d\n”,a,b);}22.函数的实参和形参类型不⼀致fun(float x,float y)main(){int a=3,b=4;c=fun(a,b);…}23.不同类的型指针混⽤{int i=3,*p1;float a=1.5,*p2;p1=&i;p2=&a;printf(“%d,%d\n”,*p1,*p2);}24.没有注意函数参数的求值顺序int i=3;prinft(“%d,%d,%d\n”,i,++i,++i);结果为5,5,4因为VC++是采取⾃右⾄左的顺序求函数的值C标准没有具体规定函数参数求值的顺序25.混淆数组名与指针变量的区别{ int i,a[5];for(i=0;i<5;i++)scanf(“%d”,a++);}{int a[5],*p;p=a;for(int i=0;i<5;i++)scanf(“%d”,p++)}{int a[5],*p;for(p=a;pscanf(“%d”,p);}26.混淆结构体类型与结构体变量的区别struct worker{long int num;char name[20];char sex;int age;};worker.num=187045;strcpy(/doc/449e33ccda38376baf1faefa.html ,”ZhangFun”);worker.sex=‘M’;worker.age=18;27.使⽤⽂件时忘记打开,⽤只读⽅式打开,却企图向该⽂件输出数据if(fp=fopen(“test”,”r”))==NULL){printf(“cannot open this file\n”);exit(0);ch=fgetc(fp);while(ch!=‘#’){ch=ch+4;fputc(ch,fp);ch=fgetc(fp);}C语⾔编程常见问题分析1.2.1 参数校验问题在C语⾔的函数中,⼀般都要对函数的参数进⾏校验,但是有些情况下不在函数内进⾏校验,⽽由调⽤者在外部校验,到底什么情况下应该在函数内进⾏校验,什么情况下不需要在函数内进⾏校验呢?下列原则可供读者参考。
C++常见的编译错误中英对应翻译对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大家:fatal error C1003: error count exceeds number; stoppin g compila tion中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译fatal error C1004: unexpec ted end of file found中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等fatal error C1083: Cannotopen include file: 'xxx': No such file or directo ry中文对照:(编译错误)无法打开头文件x xx:没有这个文件或路径分析:头文件不存在、或者头文件拼写错误、或者文件为只读fatal error C1903: unableto recover from previou s error(s); stoppin g compila tion中文对照:(编译错误)无法从之前的错误中恢复,停止编译分析:引起错误的原因很多,建议先修改之前的错误error C2001: newline in constan t中文对照:(编译错误)常量中创建新行分析:字符串常量多行书写error C2006: #include expecte d a filenam e, found 'identif ier'中文对照:(编译错误)#include命令中需要文件名分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h”error C2007: #definesyntax中文对照:(编译错误)#define语法错误分析:例如“#define”后缺少宏名,例如“#define”error C2008: 'xxx' : unexpec ted in macro definit ion中文对照:(编译错误)宏定义时出现了意外的xxx分析:宏定义时宏名与替换串之间应有空格,例如“#defineTRUE"1"”error C2009: reuse of macro formal'identif ier'中文对照:(编译错误)带参宏的形式参数重复使用分析:宏定义如有参数不能重名,例如“#defines(a,a) (a*a)”中参数a重复error C2010: 'charact er' : unexpec ted in macro formalparamet er list中文对照:(编译错误)带参宏的形式参数表中出现未知字符分析:例如“#defines(r|) r*r”中参数多了一个字符‘|’error C2014: preproc essorcommand must start as first nonwhit e space中文对照:(编译错误)预处理命令前面只允许空格分析:每一条预处理命令都应独占一行,不应出现其他非空格字符error C2015: too many charact ers in constan t中文对照:(编译错误)常量中包含多个字符分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“char error = 'error';”error C2017: illegal escapesequenc e中文对照:(编译错误)转义字符非法分析:一般是转义字符位于' ' 或" " 之外,例如“char error = ' '\n;”error C2018: unknown charact er '0xhh'中文对照:(编译错误)未知的字符0x hh分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号error C2019: expecte d preproc essordirecti ve, found 'charact er'中文对照:(编译错误)期待预处理命令,但有无效字符分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!defineTRUE 1”error C2021: expecte d exponen t value, not 'charact er'中文对照:(编译错误)期待指数值,不能是字符分析:一般是浮点数的指数表示形式有误,例如123.456Eerror C2039: 'identif ier1' : is not a memberof 'identif ier2'中文对照:(编译错误)标识符1不是标识符2的成员分析:程序错误地调用或引用结构体、共用体、类的成员error C2041: illegal digit 'x' for base 'n'中文对照:(编译错误)对于n进制来说数字x非法分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数error C2048: more than one default中文对照:(编译错误)default语句多于一个分析:switch语句中只能有一个defau l t,删去多余的de faulterror C2050: switchexpress ion not integra l中文对照:(编译错误)switch表达式不是整型的分析:switch表达式必须是整型(或字符型),例如“switch("a")”中表达式为字符串,这是非法的error C2051: case express ion not constan t中文对照:(编译错误)case表达式不是常量分析:case表达式应为常量表达式,例如“case "a"”中“"a"”为字符串,这是非法的error C2052: 'type' : illegal type for case express ion中文对照:(编译错误)case表达式类型非法分析:case表达式必须是一个整型常量(包括字符型)error C2057: expecte d constan t express ion中文对照:(编译错误)期待常量表达式分析:一般是定义数组时数组长度为变量,例如“int n=10; int a[n];”中n为变量,这是非法的error C2058: constan t express ion is not integra l中文对照:(编译错误)常量表达式不是整数分析:一般是定义数组时数组长度不是整型常量error C2059: syntaxerror : 'xxx'中文对照:(编译错误)‘xxx’语法错误分析:引起错误的原因很多,可能多加或少加了符号xxxerror C2064: term does not evaluat e to a functio n中文对照:(编译错误)无法识别函数语言分析:1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确2、变量与函数重名或该标识符不是函数,例如“int i,j; j=i();”中i不是函数error C2065: 'xxx' : undecla red identif ier中文对照:(编译错误)未定义的标识符x xx分析:1、如果xxx为c o ut、cin、scanf、printf、sqrt等,则程序中包含头文件有误2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。
VisualC++常见错误及解决方案
1.致命错误C1002
错误信息
compiler is out of heap space in pass 2
错误分析
编译器在执行第二阶段堆空间溢出。
编译器运行的动态内存空间不足,在编译器(C2.EXE)执行第二阶段。
通常,这意味着该程序有太多的符号或者复杂的表达式。
解决方案:
将文件分为几个较小的源文件。
将复杂的表达式变成较小的字表达式。
删除在系统中消耗大量的内存运行的其他程序或驱动程序。
2.致命错误C1023
错误信息
cannot open source file 'filename'
错误分析
无法打开源文件。
给定的文件不存在,或者没有被发现,从而导致无法打开。
如果只出现错误号而没有出现错误信息,则代表编译器用完了文件句柄。
解决方案
确保环境的设置是有效的,为文件指定正确的路径。
此错误可能是没有足够的文件句柄引起的,关闭一些已经打开的应用程序,然后重新编译。
试图打开一个文件或目录,如果您没有权限可能导致此错误。
将文件移动到一个您有访问权限的目录下,或要求您的网络管理员授予您访问该文件的权限。
请确保该文件的名称拼写正确。
3.致命错误C1034
错误信息
‘file’:no include path set
错误分析
头文件没有设置包含路径。
INCLUDE环境变量还没有设置。
解决方案
在工具菜单上选择选项命令进行设置。
在选项对话框中,选择Directiories标签。
显示目录框,选择包含文件并指定包含文件的路径。
如果您使用的是命令行编译器,运行的vcvars32.bat批处理文件设置INCLUDE 环境变量。
4.致命错误C1042
错误信息
cannot open compiler intermediate file - no such file or directory 错误分析
无法打开编译器中间文件,没有这样的文件或目录。
编译器无法创建在编译过程中使用的中间文件,因为TMP环境变量设置为一个无效的目录或路径。
解决方案
使用SET命令来更改TMP环境变量,使其指向一个有效的目录。
5.致命错误C1053
错误信息
‘<identifier>’:function too large
错误分析
‘<identifier>’功能过于庞大。
函数太大无法进行编译。
解决方案
你可以尝试下优化编译,或者将原函数分成两个或多个函数。
请注意,内联函数调用例程可能使函数变的很大。
6.致命错误C1055
错误信息
compiler limit:out of keys
错误分析
编译器受限制:键值溢出。
正在编译的文件中包含太多的符号。
编译器建立了一个符号表并且使用哈希键来查找表中的符号。
此错误指示编译器已达到了自身的键值限制。
解决方案
尝试将原文件分成小的文件,并重新编译。
只包括那些绝对必要的头文件。
在可能的地方,重复使用临时和全局变量,,以便减少符号生成,从而需要较少的键值。
7.致命错误C1058
错误信息
compiler limit:too many formal arguments
错误分析
编译器受限制:太多的形式参数。
该函数的声明有太多的形参。
解决方案
通过结构或结构体指针减少参数的个数。
8.致命错误C1067
错误信息
compiler limit:debug information module size exceeded 错误分析
编译器受限制:调试信息模块大小限制。
此错误可能是由于一个名称超过247个字符的符号命名造成。
解决方案
缩短符号名长度。
9.致命错误C1189
错误信息
#error:user supplied error message
错误分析
用户自定义错误信息。
此错误发生在程序中有一个#error指示的时候。
举例
#undef _WIN32
#if !defined(_WIN32)
#error _WIN32 must be defined //error
#endif
int main() {
return 0; }。