![]() |
Re: wie bearbeitet ein Compiler if-Abfragen?
Ich weiss jetzt nicht ob es bereits mal erwähnt wurde, aber der Compiler nimmt natürlich auch Optimierung durch.
Es wird nur so lange ausgewertet, bis das Ergebnis des Gesamten Ausdrucks feststeht. Bestes Beispiel ist immer ne Prüfung bei einem Array:
Delphi-Quellcode:
Wenn Arr eine Länge von Null hat, führt er Arr[0]=10 nicht mehr aus, da der Gesamtausdruck nicht mehr Wahr sein kann.
if (length(Arr)>0) and (Arr[0]=10) then
Genauso verhält es sich bei or
Delphi-Quellcode:
Wenn a 10 ist, wird b auch nicht mehr geprüft, da nun der gesamte Ausdruck auf jeden Fall wahr ist.
if (a=10) or (b=20) then
|
Re: wie bearbeitet ein Compiler if-Abfragen?
@PRehders
Super, vielen Dank das du dir die Mühe gemacht hast. Ich glaub jetzt ist mir einiges viel viel klarer geworden! Werd mich da jetzt al einarbeiten. :hello: Gruss Dragi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz