Markus wrote:
> Ah, danke. Aber irgendwie wirkt sich das eher negativ auf die Laufzeit
> aus. Seltsam
Nicht wirklich.
Es ist eher selten (Jörg hat einen Fall aufgezeigt), in dem
du mit einer Register Zuweisung dein Programm besser optimieren
kannst als der Compiler. Auf PCs wird zb. gerne die Regel
ausgegeben: Im besten Fall ignoriert der Compiler deinen register-
Wunsch. Also lass es lieber bleiben.
Compiler haben ausgeklügelte Algorithmen die auf Datenfluss Analyse
basieren um die Register Belegung zu optimieren.
Lediglich in Ausnahmefällen, wie zb. Interrupt Routinen kann eine
explizite register Vereinbarung etwas bewirken. Aber immer daran
denken: Wenn du ein Register für eine bestimmte Variable reservierst,
dann steht dieses Register an anderer Stelle für den Compiler nicht
mehr zur Verfügung. D.h. an einer Stelle wird dadurch der Zugriff
auf eine Variable zwar schneller, aber dafür kann es passieren,
dass an 50 anderen Stellen extra Klimmzüge gemacht werden müssen
um den Ausfall dieses Registers zu kompensieren.