Zitat:
@negaH
meines ist schneller (der Vergleich mit 1 ist entfallen)
nein ist es nicht,
1.) sagte ich schon das ich niemals bei solchen Boolschen Auswertungen es so schreiben würde
Delphi-Quellcode:
if Flag and 1 = 1 then;
if Flag and $80 = $80 then ;
sondern immer
Delphi-Quellcode:
if Flag and 1 <> 0 then ;
if Flag and $80 <> 0 then ;
weil ich eben weis das das Assemblertechnisch ein großer Unterschied ist, und
2.) vergisst du das du eine externe Funktion nutzt die einen CALL + RET usw. benötigt, Odd() selber benutzt ist ein Compiler-Magic den der Compiler abhängig von den Randbedinungen immer anders in Asssembler umsetzt.Der Compiler wählt dann in jedem Falle den optimlasten und effizientesten Assembler, ganz im Gegensatz zu deiner Funktion. Sie beschränkt in diesem Falle die Wahlfreiheit des Optimierers.
Gruß Hagen