(Debug+C++)会一直更新

发表在    程序里的星辰与大海 08-26 09:27:55

1 1854 2

首先声明,以下有些是自己遇到的问题自己解决了,其它里面包括了网上看到的Debug经验和书里看到的经验,时间问题就不一一说明,如有侵权,私信我进行删除,我会道歉。我写这个的本意是记录我学习中遇到的问题,冒犯之处多多包涵。

C++部分:

1.加界定符对注释引起的不知名错误。

1.最好在加了这种注释后马上编译一次,不然出错就找不到原因了。

2.“无法解析函数重载”

1.漏掉第二个输出运算符,特征是在你漏掉的运算符处报error,说漏了分号。

2.如果是cout处的运算符漏了,error会说该运算符无法解析函数重载

3.无法查找或者打开PDB文件以及运行框一闪而过

1.启用源服务器支持和Microsoft符号服务器;return语句前加上 system(“pause”)

4.与数字有关的循环,发现结果比自己预想中的多了1

1.断点调试,监视变量,可以找到是哪个变量出了问题(自己遇到的情况是把输出b+1看成了b=b+1.)

5.死循环

1.判断语句中的b==1写成了b=1,使判断始终为真。

6.未定义标识符报错

1.字符串字面值常量的两侧漏掉引号,此时输出的字符作为未定义标识符报错

2.C++中每个名字都要先声明后使用,名字声明失败也会错误,error信息是未定义标识符xx之类

3.优先级、结合方向、执行顺序的关系。详细见文章http://m.blog.csdn.net/sxhelijian/article/details/17276879,用该文章最后一段话总结为:在一个句子里面,只做一件事。复杂的表达式必须保证被修改的变量不会再被当前语句应用。否则会出现undefined结果,编程的时候应该尽量避免这种编程风格。

7.x不是x类型

变量初始化或者赋值错误

8.未初始化变量

1.定义在函数内部的内置类型默认是未初始化的,除非有显示的初始化语句,试图用一个未初始化的类型是错误的。

2.初始化方式错误引起的错误

     初始化有好几种方法:int a=0、int a(0)、int a=(0)、int a{0},之间有区别,找到了文章,但是目前看不懂:

     https://zhuanlan.zhihu.com/p/21102748?utm_source=qq&utm_medium=social

9.变量值超过范围

10.无符号和有符合类型引起的编译错误

1.编译器不同引起的。

11.类型自动转换

12.不同的移植性与依赖环境

1.无法预知的行为源于编译器无须(有时是不能)检测的错误,即使编译通过,程序执行了未定义的表达式,也会产生错误。

2.含有无法预知行为的程序在某种情况下也能正确执行,但我们却无法保证其在别的编译器下能正常工作,甚至本来能执行的再次执行也会出错。且不能认为一组输入有效,另一组输入也有效。

3.把int尺寸看成固定值的这类程序称为不可移植的,当这种程序移植到别的机器就可能发生错误。

13.数值前后不一致

1.数值转换为二进制存储时是以近似值存储的。

14.用log输出运行日志进行Debug

15.警告:需要收缩转换

1.丢失信息的赋值,比如double a=3.12,int b=a。

16.无法预计的错误

1.试图拷贝或从其他方式访问无效指针的值。(编译器不负责检查此类错误)

2.空指针和指向紧邻对象所占空间的下一个位置的指针,试图访问它们是不被允许的。



C/C++涓紭鍏堢骇銆佺粨鍚堟柟鍚戜笌鎵ц椤哄簭鐨勫叧绯?- 杩傝€?璐哄埄鍧氱殑涓撴爮 - CSDN鍗氬






登录或注册后发布评论