请选择 进入手机版 | 继续访问电脑版

专注代码检测 - 阅镜

 找回密码
 立即注册
热搜: 安装 代码
查看: 119|回复: 0

检查复制粘贴的重复代码(相同代码通常代表错误)

[复制链接]

70

主题

70

帖子

232

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
232
发表于 2021-9-10 19:46:52 | 显示全部楼层 |阅读模式
当开发中遇到较长的句子时,如果你选择了复制粘贴语句,请记得检查每一行代码,不要出现上下两句一模一样的情况,这通常代表代码哪里出现了错误:

  1. // Bad
  2. void Foobar(SomeStruct& foobase, SomeStruct& foo1, SomeStruct& foo2) {
  3.   foo1.bar = (foo1.bar & 0xffff) | (foobase.base & 0xffff0000);
  4.   foo1.bar = (foo1.bar & 0xffff) | (foobase.base & 0xffff0000);
  5. }
复制代码

如上例,通常可能是:

  1. // Good
  2. void Foobar(SomeStruct& foobase, SomeStruct& foo1, SomeStruct& foo2) {
  3.   foo1.bar = (foo1.bar & 0xffff) | (foobase.base & 0xffff0000);
  4.   foo2.bar = (foo2.bar & 0xffff) | (foobase.base & 0xffff0000);
  5. }
复制代码

最好是把重复的代码片段提取成函数,如果函数比较短,可以考虑定义为  inline  函数,在减少冗余的同时也能确保不会影响性能。

关联漏洞:
  1.   中风险-逻辑问题
复制代码
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋| 阅镜 ( 京ICP备2020034574号 )|网站地图|网站地图点击这里给我发消息

GMT+8, 2022-1-17 10:00 , Processed in 0.122090 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表