遥不可及的代码
在执行期间无法访问代码
描述
遥不可及的代码使用语句覆盖率来确定在执行期间是否可以访问一段代码。语句覆盖率检查程序语句是否被执行。如果语句具有测试条件,并且至少出现了其中一个,则执行语句并可访问该语句。没有发生的测试条件不被认为是死代码,除非它们有相应的代码分支。如果所有测试条件都没有出现,则不会执行语句,并且每个测试条件都是不可达代码的实例。例如,在开关
此代码的语句,案例3
从来没有发生:
Void test1 (int a) {int TMP = 0;If ((a!=3)) {switch (a){case 1: tmp++;打破;默认值:TMP = 1;打破;/*情况3变成情况2,没有死代码*/案例3:案例2:TMP = 100;打破;}}} void test2 (int a) {int TMP = 0;If ((a!=3)) {switch (a){case 1: tmp++;打破;默认值:TMP = 1;打破;// case 3上的错误代码情况下3.:休息;案例2:TMP = 100;打破;}}} |
在test1 ()
,案例3
掉进了案例2
检查显示没有死代码。在test2 ()
,检查显示死代码案例3
因为打破
语句将不执行。
不可达代码的其他例子包括:
如果测试条件的结果总是false,则无法到达相应的代码分支。在源窗格,树枝的开撑是灰色的。
如果测试条件的计算结果总是为真,则该条件是冗余的。在源窗格中,condition关键字,例如
如果
,显示为灰色。代码遵循一个
打破
或返回
声明。
上的代码块的开大括号显示为灰色源窗格中,双击大括号以突出显示整个块。
检查操作的是函数内部的代码。的检查未调用的函数而且函数不可达确定函数本身没有被调用,还是从不可访问的代码中调用。
诊断此检查
例子
检查信息
组:数据流 |
语言:C | c++ |
缩略词:老 |