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语句
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |