C attribute: fallthrough (since C23)
Gibt an, dass das Fallthrough vom vorherigen Case-Label beabsichtigt ist und nicht von einem Compiler diagnostiziert werden sollte, der vor Fallthrough warnt.
Inhaltsverzeichnis |
Syntax
[[
fallthrough
]]
[[
__fallthrough__
]]
|
|||||||||
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 zu verarbeitende Blockelement (Anweisung, Deklaration oder Label) eine Anweisung mit einem
case
- oder
default
-Label für diese switch-Anweisung sein muss.
Gibt an, dass das Fallthrough vom vorherigen Case-Label beabsichtigt ist und nicht von einem Compiler diagnostiziert werden sollte, der vor Fallthrough warnt.
Beispiel
#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: // keine Warnung bei Fallthrough h(); case 4: // Compiler kann bei Fallthrough warnen if(n < 3) { i(); [[fallthrough]]; // OK } else { return; } case 5: while (false) { [[fallthrough]]; // ungültig: kein nachfolgender Case- oder Default-Label } case 6: [[fallthrough]]; // ungültig: kein nachfolgender Case- oder Default-Label } } int main(void) {}
Siehe auch
|
C++ Dokumentation
für
fallthrough
|