这段代码中切换/默认的奇怪目的是什么?

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语句,代码应该有当案件被移除时,无论如何都被重构了.

感谢大家.

Chr*_*ard 9

我能想到的两件事:1)代码是自动生成的2)原始编码器认为他们可能会在以后为错误代码添加不同的处理,但从未这样做过.在任何一种情况下,我都看不出任何理由不将其改为简单的if语句