utn*_*tim 3 c c++ refactoring switch-statement
我正在将一些代码从C转移到C++,我找到了这段代码:
if(ErrorCode >= SOME_CONSTANT)
{
Status = RETVAL_OK;
switch ( ErrorCode )
{
default:
Status = RETVAL_FAILED;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码生成编译警告:
warning C4065: switch statement contains 'default' but no 'case' labels
Run Code Online (Sandbox Code Playgroud)
问题:switch语句是否有任何目的(我没有掌握)或者只是简单的代码?
也就是说,有没有任何理由(编译ANSI C或C++时)不这样写?
if(ErrorCode >= SOME_CONSTANT)
Status = RETVAL_FAILED;
Run Code Online (Sandbox Code Playgroud)
编辑:解决出现的所有问题:
代码并不是要扩展:这是四年前交付的模块的最终版本(从那以后它没有被触及,所以我倾向于相信它是残酷的).
据我所见,还没有删除的case语句(相同的代码构造放在代码中的三个不同的位置(switch/default如果检查错误常量,则相同)如果有删除的case语句,代码应该有当案件被移除时,无论如何都被重构了.
感谢大家.