不应存在没有被用到的标签
6.12.4 ID_labelNotUsed
没有被用到的标签意味着 goto 语句的缺失,也可能是残留代码,应当去除。
示例:
int foo() {
int i = 0;
lab: // Non-compliant
return bar(i);
}
标签只应与 goto 语句对应,不可有其他用途,如:
int bar(int x) {
int i = 0;
strange_comment: // Non-compliant
return x + i;
}
例中标签被当作注释,这是一种怪异的用法,也可能会干扰编译器的优化。
参考
MISRA C 2012 2.6