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






Zitieren

Lesezeichen