C 属性: fallthrough (自 C23 起)
来自 cppreference.com
指示从先前 case 标签进行的贯穿是故意的,不应由警告贯穿的编译器诊断。
内容 |
[编辑] 语法
[[ fallthrough ]] [[ __fallthrough__ ]] |
|||||||||
[编辑] 解释
只能在 属性声明 中使用,以创建贯穿声明 ([[fallthrough]];).
贯穿声明只能在 switch 语句中使用,其中要遇到的下一个块项(语句、声明或标签)是具有该 switch 语句的 case
或 default
标签的语句。
指示从先前 case 标签进行的贯穿是故意的,不应由警告贯穿的编译器诊断。
[编辑] 示例
运行此代码
#include <stdbool.h> void g(void) {} void h(void) {} void i(void) {} void f(int n) { switch (n) { case 1: case 2: g(); [[fallthrough]]; case 3: // no warning on fallthrough h(); case 4: // compiler may warn on fallthrough if(n < 3) { i(); [[fallthrough]]; // OK } else { return; } case 5: while (false) { [[fallthrough]]; // ill-formed: no subsequent case or default label } case 6: [[fallthrough]]; // ill-formed: no subsequent case or default label } } int main(void) {}
[编辑] 另请参阅
C++ 文档 对于 fallthrough
|