Warnung C26818
Switch-Anweisung deckt nicht alle Fälle ab. Erwägen Sie das Hinzufügen einer "default"-Bezeichnung (es.79).
Hinweise
Diese Überprüfung behandelt die fehlende default
Bezeichnung in Switch-Anweisungen, die über einen Nicht-Enumerationstyp wechseln, z int
. B. , char
usw.
Weitere Informationen finden Sie unter ES.79: Verwenden, default um häufige Fälle (nur) in den C++-Kernrichtlinien zu behandeln.
Beispiel
In diesem Beispiel ist beim Umschalten eine int
fehlende default
Beschriftung vorhanden.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Lösung
Um dieses Problem zu beheben, fügen Sie eine default
Beschriftung ein, um alle Fälle neu zu behandeln Standard.
void fn1();
void fn2();
void default_action();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
default_action();
break;
}
}
Wenn keine default Aktion ausgeführt werden muss, fügen Sie eine leere default
Bezeichnung ein, um anzugeben, dass die anderen Fälle nicht vergessen wurden.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
// do nothing for the rest of the cases
break;
}
}