bug随手记

C:

1.如果double的变量用%d的格式printf输出,gcc编译器不报警告,而且运行无错误,最后输出会莫名其妙。当发现输出很奇怪时要检查输出格式与变量类型是否吻合。

2.fscanf 和 scanf 函数都是有返回值的,返回值为读到的变量个数。判断一下返回值是有必要的,可避免一些大文件中字符出错,因为大文件很难打开检查是否格式全部正确,所以一旦出错debug的时间会很长。另外,fscanf函数移动文件指针的结果和输入格式设定是相符的,例如输入格式为"%d %d"的话,那么文件指针会指向第二个整数的下一个单元。注意文件的结束符EOF也是占一个单元的,所以用fscanf在判断文件是否结束的时候需要把输入格式定为"****\n",最后的"\n",会保证文件指针指到EOF上,这样在下一个循环中feof(inputFILE)会读到EOF并结束循环。

 

原则:

1.解决问题的时候最优先用最直接的方法,不要贪图一开始就提升效率,否则出现bug的几率和调试过程会变得非常恼人。一些优化问题应该留到功能实现完成后再做改进。

2.流程图是很解决问题的,梳理思路,文档,注释都能借力,所以尽量画一个流程图

3.临时循环变量娶一个长名字不容易糊涂

posted @ 2016-07-11 00:17  daretobe  阅读(116)  评论(0编辑  收藏  举报