gcc的较新版本提供Wimplicit-fallthrough
,这对于大多数switch语句来说都是非常棒的。但是,我希望允许所有病例陈述中都有一个switch语句。如何在C中做一个明确的突破 -
有没有办法做一个明确的跌倒?我宁愿避免为此文件编译Wno-implicit-fallthrough
。
编辑:我正在寻找一种方法来通过显式(如果可能)使秋天,而不是通过编译器开关或杂注关闭警告。
gcc的较新版本提供Wimplicit-fallthrough
,这对于大多数switch语句来说都是非常棒的。但是,我希望允许所有病例陈述中都有一个switch语句。如何在C中做一个明确的突破 -
有没有办法做一个明确的跌倒?我宁愿避免为此文件编译Wno-implicit-fallthrough
。
编辑:我正在寻找一种方法来通过显式(如果可能)使秋天,而不是通过编译器开关或杂注关闭警告。
使用__attribute__ ((fallthrough))
switch (condition) {
case 1: __attribute__ ((fallthrough));
case 2: __attribute__ ((fallthrough));
case 3:
printf("1..3\n");
break;
}
这是正确的答案,但是这个例子很糟糕:-Wimplicit-fallthrough不是针对空的壳体发出的,所以在这里不需要。 – thakis
您应该可以使用GCC diagnostic pragmas来禁用源文件或源文件某些部分的特定警告。尝试把这个在你的文件的顶部:
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
也许[这](https://stackoverflow.com/a/3394268/1553090)是你想要的。 – paddy
我找到了同一个。 https://stackoverflow.com/questions/3378560/how-to-disable-gcc-warnings-for-a-few-lines-of-code –
请查看['-Wimplicit-fallthrough'](https: //gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#index-Wimplicit-fallthrough)在GCC文档中?不会有任何非延伸机制 - 整个问题都是延伸。 –