Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#15

Re: StreamWrite erzeugt nur 0 Byte-File

  Alt 6. Jun 2008, 10:58
Zitat von p80286:
In dem Zusammenhang eine Frage:

Besteht zwischen
Delphi-Quellcode:
bvar:=(a and b);
if bvar then ....
und
Delphi-Quellcode:
if (a and b) then bvar:=true
else bvar:=false;
if bvar then ...
ein Unterschied?
Hier wäre es wirklich Geschmackssache, ob nun eine einzeilige Evaluierung genutzt wird oder es ausformuliert wird. Grundsätzlich ist ersteres für den Optimierer leichter zu erfassen (und zu optimieren), weil der zweite Konstrukt umfangreich ist und mit Konstantenzuweisungen arbeitet.

Da du die Variable direkt danach in einer Bedingung benutzt, würde ich es direkt auswerten in der If Anweisung, ausser die Variable wird noch woanders benötigt, dann würde ich persönlich die einzeilige Evaluation benutzten. Aber wie gesagt, das wäre hier wirklich Geschmackssache - im Gegensatz hierzu:

bvar := (a and b) = true; Hier würde dann wieder das zuvor geschriebene gelten, vor allem da dies nur bei boolschen Variablen a und b klappen sollte und bei allen anderen Ordinaltypen als a und b zu einer binären AND Operation führen und nicht zu einer logischen Evaluierung...
  Mit Zitat antworten Zitat