Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#5

Re: Funktionsaufrufe wegoptimiert???

  Alt 16. Nov 2009, 12:12
Zitat von iphi:
Wo liegt mein Denkfehler? Irgendwie besitzt der Compiler eine andere Logik als ich.
Ja - das ist "Abbruchlogik", aber durchaus logisch: bei ok := a and b wird der zweite Teil nicht mehr aufgerufen, wenn a false ist, falser kann es nicht werden und mit and auch nicht true.

Man kann einstellen, das logische Gleichungen bis zum Ende ausgewertet werden, aber das ist, zumindest meiner Meinung nach, schlechter Programmierstil: das Laden von Variablen ist ein Nebeneffekt der logischen Abfrage, und dein Programm erklärt praktisch die Nebenwirkung zum eigentlich beabsichtigten Zweck. Man kann das aber auch anders formulieren:

Delphi-Quellcode:
ok := true;
found := ladevar1;
if not found then ok := false;
found := ladevar2;
if not found then ok := false;
Gruss Reinhard
  Mit Zitat antworten Zitat