每天学点C++知识:复制粘贴代码千万要小心
作者:网络转载 发布时间:[ 2016/1/22 13:38:47 ] 推荐标签:测试开发技术 .NET
有个国外团队检测了 200 多个 C/C++ 开源项目,包括了 Php、Qt 和 Linux 内核等知名项目。于是他们每天分享一个错误案例,并给出相应建议。本篇案例来自 Audacity 源代码。
错误代码:
sampleCount VoiceKey::OnBackward (....) {
...
int atrend = sgn(buffer[samplesleft - 2]-
buffer[samplesleft - 1]);
int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]-
buffer[samplesleft - WindowSizeInt-2]);
...
}
解释:
“buffer[samplesleft - WindowSizeInt-2]” 该表达式是减去其自身。这个错误是由于复制粘贴代码引起的,该程序员复制了一行代码,却忘记把 2 改为 1 了。
正确的代码:
int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]-
buffer[samplesleft - WindowSizeInt-1]);
建议:
复制粘贴代码时千万要小心。
不建议大家拒绝使用复制粘贴的方法,毕竟它确实很有用,使用起来太方便了。但用的时候千万要小心,不要着急。
俗话说有备无患。记住复制粘贴代码可能会导致大量的错误。看看这些通过 V501 诊断发现 bug 的例子中,有一半的错误都是由于使用复制粘贴方法导致的,另外一半是因为拼写错误。当然关于这个话题,我们另一篇文章专门写到它。
当你复制代码并进行修改的时候,时刻要记得检查你是否完全做对了!千万别偷懒!
另外,我们还会讨论更多关于复制粘贴的话题,我打赌你还没意识到这个问题影响的范围有多广,但是我保证会让你印象深刻。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11