Ich hab jetzt mal nen komplexen Interrupthandler gebastelt. Dabei habe ich 3 Sachen festgestellt: 1. "default:" muß garnicht am Ende stehen 2. Cases können auch innerhalb von if-Zweigen stehen, d.h. der Zweig wird von einem Case nur unter einer Bedingung, vom anderen aber unbedingt ausgeführt. 3. Wenn man die Cases hübsch nacheinander plaziert, versucht der Compiler das mit ner Sprungtabelle zu machen, muß dann aber auch noch die Pointerregister pushen und poppen. Wenn man aber Lücken läßt, merkt er, daß die Sprungtabelle zu groß wird und machts mit Compare, was in meinem Fall kürzeren und weniger Code erzeugte. Auf die Idee zu 1. und 2. bin ich gekommen, weil ich mir vorher auf Papier einen Plan gemacht hatte und dabei in andere States reinspringen mußte. Ich wollte aber kein goto verwenden und den Code auch nicht doppelt schreiben (solchen Code vergißt man ja regelmäßig bei Änderungen). Es ergibt sich quasi eine States-Schleife, die irgendwo in der Mitte endet und dort steht dann auch der default-Fall. Peter
Ja, klar. Im Prinzip alles bekannt. ;-) Gugele mal nach "Duff's device" und staune. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.