C attribute: fallthrough (since C23)
Indique que la chute depuis l'étiquette de cas précédente est intentionnelle et ne devrait pas être diagnostiquée par un compilateur qui avertit sur les chutes.
Table des matières |
Syntaxe
[[
fallthrough
]]
[[
__fallthrough__
]]
|
|||||||||
Explication
Ne peut être utilisé que dans une déclaration d'attribut pour créer une déclaration fallthrough ( [ [ fallthrough ] ] ; ).
Une déclaration
fallthrough
ne peut être utilisée que dans une
switch
, où le prochain élément de bloc (instruction, déclaration ou étiquette) rencontré est une instruction avec une étiquette
case
ou
default
pour cette instruction switch.
Indique que la chute depuis l'étiquette de cas précédente est intentionnelle et ne devrait pas être diagnostiquée par un compilateur qui avertit sur les chutes.
Exemple
#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: // aucun avertissement sur le fallthrough h(); case 4: // le compilateur peut avertir sur le fallthrough if(n < 3) { i(); [[fallthrough]]; // OK } else { return; } case 5: while (false) { [[fallthrough]]; // incorrect : aucun label case ou default suivant } case 6: [[fallthrough]]; // incorrect : aucun label case ou default suivant } } int main(void) {}
Voir aussi
|
Documentation C++
pour
fallthrough
|