Erstmal, ja
alles ist legaler C Code und hat seine gleichwertige Daseins-Berechtigung.
Aber, nein
switch/case ist trotzdem prinzipiell ein goto und kein if/else if
es ist eine Tabelle, wenn das kürzer ist, sonst sind es auch if.
Ganz unschuldiges Beispiel
Code:
switch(i)
{
case 1:
// ...
break;
case 2:
// ...
break;
case 3:
// ...
break;
}
gibt eine Tabelle.
Aber
Code:
switch(i)
{
case 10:
// ...
break;
case 100:
// ...
break;
case 1000:
// ...
break;
}
ups, was machen wir mit den Zwischenwerten ? Eine Tabelle mit 1001 Einträgen in den Speicher vom armen Arduino ?
Nein, da passiert was ganz anderes. Und deshalb überlegt der Compiler so lange ...
Lesezeichen