☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

if 分枝和 else 分枝的起止语句不应相同

9.1.8 ID_if_commonStatements
目录 › next › previous

如果 if 分枝和 else 分枝的起止语句相同,应将其从分枝结构中提取出来,否则重复的代码不利于阅读和维护。

示例:

if (condition) {
    foo();
    ....
    bar();
}
else {
    foo();
    ....
    bar();
}

if 与 else 分枝的开头和结尾相同,应提取出来:

foo();
if (condition) {
    ....
}
else {
    ....
}
bar();

当条件分枝中的所有语句都相同时,本规则特化为 ID_if_identicalBlock,这种情况往往意味着错误。

相关

ID_if_identicalBlock

参考

CWE-670 C++ Core Guidelines ES.3
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.