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.临时循环变量娶一个长名字不容易糊涂