加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 此代码中切换/默认的任何奇怪目的?

发布时间:2020-12-16 10:42:35 所属栏目:百科 来源:网络整理
导读:我正在将一些代码从C移植到C,我找到了这段代码: if(ErrorCode = SOME_CONSTANT){ Status = RETVAL_OK; switch ( ErrorCode ) { default: Status = RETVAL_FAILED; break; }} 此代码生成编译警告: warning C4065: switch statement contains 'default' but
我正在将一些代码从C移植到C,我找到了这段代码:

if(ErrorCode >= SOME_CONSTANT)
{
    Status = RETVAL_OK;

    switch ( ErrorCode )
    {
        default:
            Status = RETVAL_FAILED;
            break;
    }
}

此代码生成编译警告:

warning C4065: switch statement contains 'default' but no 'case' labels

问题:switch语句是否有任何目的(我没有掌握)或者只是简单的代码?

也就是说,有没有任何理由(编译ANSI C或C时)不这样写?

if(ErrorCode >= SOME_CONSTANT)
     Status = RETVAL_FAILED;

编辑:解决出现的所有问题:

代码并不是要扩展:这是四年前交付的模块的最终版本(从那以后它没有被触及,所以我倾向于相信它是残酷的).

据我所知,还没有删除的case语句(相同的代码构造放在代码中的三个不同的位置(如果检查错误常量,则相同的switch / default)如果有删除的case语句,当案件被删除时,代码应该已被重构.

感谢大家.

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读