fallthrough
就是掉落穿透,比如从楼上掉下来一个导弹,直接就fall through 整个楼层。然后再爆。
原因
这个是大家经过多年经验总结而来的一个警告,以防止疏忽大意导致代码里出现非程序员本意的代码逻辑来,缺少了break语句。逻辑,就是如果是要break,就要加上语句break;但是如果不加break,代表fallthrough,这个fallthrough不是每个人都能意识到,或者是忘记了,所以要明确写上是否要fallthrough。
实例代码
switch (cond)
{
case 1:
a = 1;
break;
case 2:
a = 2;/// 这一句的后面可能是少了break;如果在编译选项里加上Werror=implicit-fallthrough,给程序员一个提示。
case 3:
a = 3;
break;
}
解决方法;
使用注释
https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7
-Wimplicit