【发布时间】:2011-10-09 12:03:22
【问题描述】:
我有一个复杂的switch 语句,我忘记在cases 之一的末尾添加break。这是完全合法的,结果我掉到了下一个case。
如果我忽略了break 语句,有什么方法可以让 gcc 发出警告(甚至更好,失败)?
我意识到有许多有效的用例(并且我经常在我的代码中使用它们),如 this question 所示,因此显然这样的警告(或失败)需要一个简单的弃权,以便我可以轻松地说, “我确实想在这里跌倒。”
有没有办法告诉 gcc 这样做?
【问题讨论】:
-
老实说,如果这就是你想要的,我会说不要使用 switch/case。开关/外壳的唯一优点仍然是它很容易掉到你想要的地方。
-
嘿嘿嘿,C#强制你放break语句,不放就编译不了
-
只是好奇,我们能看到代码吗?也许有一个更好的解决方案,不需要开关。
-
@DavidSchwartz:另一个优点是更容易看到并且更容易添加新案例。
-
现在虽然
gcc对该功能的支持仍在进行中,clang has -Wimplicit-fallthrough
标签: c++ gcc switch-statement gcc-warning