--------------------------------------------调试篇
错误类型:
	编译错误:通常都是语法错误
	运行错误:比如分母是0
提示报错的时候:
	1.双击提示信息可以直接定位到报错的行
	2.从上到下的调试程序,因为后面的报错是有可能是因为前面的报错而引起的连锁反应
Bug:错误,漏洞
Debug:是找出错误,调式
描述问题的3要素:
	1.前提条件是什么
	2.预期结果是什么
	3.实际结果是什么
重现或者复现
	可以重现:是指输入相同时,都能重现相同的问题,那么问题是可以复现,重现的
	不可重现:是指输入相同时,但问题不重现,那么就成为不可重现,或者不可复现
	可以重现的问题,一般都比较好解决
	不可重现的问题,处理起来可能会稍微麻烦点
定位问题:
	找到出问题的地方
调试技术:
	我个人觉得的2种程序形式的调试方式
		附加进程:项目中经常遇到这种的
		启动调试:练习语法的通常用这样的
	断点<break point f9>
		当程序运行到此行的时候会暂停,进入单步模式
		break有中断的意思,所以程序运行到这里的时候,是会停下来的
	逐语句 = 单步调试<step over f10>:
		就是走一步看一下结果,边走边看结果,直到发现哪一步出问题了
		1.程序是由很多步组成的
		2.如果每一步都正确,那么最终结果也应该是正确的
	
	逐过程 f11:
		直接进入函数体 
		其实还是用单步调试方便,也就多打1个断点而已
	退出函数<shift + f11>:
		这个倒是比较实用
	继续运行<continue f5>
		继续运行程序,直到下一个断点,或者程序结束,就这2种情况
黄色箭头:表示即将执行这一行的代码,但是还没执行呢
	调式和试图 可以打开各种各样的窗口:
		1.调试窗口
		2.输出窗口
		3.断点窗口
		4.查找窗口 	
		5.局部变量窗口
		6.监视窗口	可以查看全局变量,也可以查看局部变量
		7.内存窗口	
			监视,局部窗口可以直接修改变量值的,而且是"实时"生效的
	
			等等,有很多的,以后再补充
	单元测试<unit test>:
		就是将一个大的程序,划分成若干单元进行测试
		当代码越来越多的时候,将代码封装成多个函数,那么每个函数可以当作是一个单元
		
		如果每个单元的结果都是正确的,那么各个单元连在一起的是,运行的结果也是正确的
		
	测试用例<TestCase>
		就是提供各种不同的输入,查看结果
		我觉得是主要是把可能引起的临界值都测试一下
		
		如果有修改的话,那么是要重新再测试一次的
		最后在联调测试
	调用堆栈:
		各个函数之间的调用关系或者说函数的调用层次,一个叼意思
		每个函数内部的局部变量的值,形参是局部变量哦
程序崩溃:
	"需要把 阿发 的官网的文档下载下来,里面的实例比较多 "
	c/c++的特点之一:
		优点灵活高效,缺点容易出错,程序崩溃
中断:可以直接定位到程序出错的地方
结构体字节填充:
	也就是 对齐 操作
	应该是以1个标准单位来计算的..小类型提升到标准类型
原文:http://www.cnblogs.com/Froger/p/5880097.html