C-Attribut: fallthrough (seit C23)
Von cppreference.com
Zeigt an, dass der Durchfall aus dem vorherigen Case-Label beabsichtigt ist und von einem Compiler, der auf Durchfall warnt, nicht diagnostiziert werden sollte.
Inhalt |
[bearbeiten] Syntax
[[ fallthrough ]][[ __fallthrough__ ]] |
|||||||||
[bearbeiten] Erklärung
Darf nur in einer Attributdeklaration verwendet werden, um eine Fallthrough-Deklaration zu erstellen ([[fallthrough]];).
Eine Fallthrough-Deklaration darf nur in einer switch-Anweisung verwendet werden, wobei das nächste Element (Anweisung, Deklaration oder Label) eine Anweisung mit einem case- oder default-Label für diese switch-Anweisung ist.
Zeigt an, dass der Durchfall aus dem vorherigen Case-Label beabsichtigt ist und von einem Compiler, der auf Durchfall warnt, nicht diagnostiziert werden sollte.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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) {}
[bearbeiten] Siehe auch
| C++-Dokumentation für fallthrough
|