Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Frage zur Effizienz von switch() case Kategorie: Programmierung C (von PeterS - 11.05.2011 13:40)
Als Antwort auf Frage zur Effizienz von switch() case von Jo - 11.05.2011 13:08

> Hallo Peter,
> in einem laufenden Projekt muss ich ca. 50 States abhandeln.
>
> Dazu bietet sich ja ein switch case Konstrukt an.
>
> Hintergrund: Ich möchte cases, die oft durchlaufen werden so einbauen, dass diese möglichst
> wenig Performance verbrauchen.
> Nun die Fragen: Wie erfolgt deine Interne Abarbeitung?
> Werden cases die oben stehen schneller bedient wie welche die weiter unten stehen?
> Hat die Reihenfolge der werte in den cases eine Auswirkung? Also ist z.B.
>
> case 0: â?¦ break;
> case 1: â?¦ break;
> case 2: â?¦ break;
> case 3: â?¦ break;
>
> schneller oder langsamer als
>
>
> case 1234: â?¦ break;
> case 0: â?¦ break;
> case 9999: â?¦ break;
> case 25: â?¦ break;
>
> Danke für deine Antwort
>
> Viele Grü�e
>
> Jo
>
>

Ein switch() Befehl macht einen Table Lookup und zwar von oben nach unten (d.h. in der
Reihenfolge der definierten case Werte. Da der Lookup in Assembler geschieht, ist das
switch() wesentlich effizienter als mehrere If's.

Gruss Peter


    Antwort schreiben


Antworten:

Re: Frage zur Effizienz von switch() case (von Jo - 11.05.2011 16:25)
    Re: Frage zur Effizienz von switch() case (von PeterS - 12.05.2011 12:53)