Ale*_*lex 3 c switch-statement
我找到了以下代码:
switch(val){
case 0:
// some actions
break;
case 1:
// some actions
break;
case 2:
// some actions
break;
}
Run Code Online (Sandbox Code Playgroud)
但目前还不清楚在例如情况下会发生什么val = 10?
我试图在一个程序中用不正确的值测试这段代码,没有任何事情发生 - 程序正常退出.
此代码可能导致任何潜在错误吗?有没有保证什么都不会发生?
它将无所事事,无论如何也无法进入.
建议default在switch声明中将子句作为最后一个子句.Lint如果您忘记该default条款,会发出警告的程序.有关信息请注意,该default条款是必需的MISRA-C.
编辑:
我个人更喜欢它是最后的条款,但我认为最重要的是最终条款的存在.为什么我更喜欢它作为最后一个条款是因为最不惊讶的原则:人们习惯把它看作最后的条款所以我认为它简化了程序阅读.
仅仅是为了我提到的信息Lint和MISRA-C我的答案:PC-Lint / flexelint不会发出警告,如果default存在但不作为最后条款,并MISRA-C明确要求default作为最后条款出现.
| 归档时间: |
|
| 查看次数: |
2054 次 |
| 最近记录: |