nein wird es nicht, Odd() ist ein Compiler-Magic und muß direkt im Source anaylsiert werden. In den meisten Fällen wie eben
if Odd(Zahl) then ;
ensteht ein Branch, ein bedingter Sprung in Assembler.
Delphi-Quellcode:
asm
AND EAX,1
JZ @NichtOdd
@NichtOdd:
end;
if Zahl and 1 = 1 then ;
würde dagegen so aussehen
Delphi-Quellcode:
asm
AND EAX,1
CMP EAX,1
JNE @NichtOdd
@NichtOdd:
end;
Odd() selber wird aber als Magic unterschiedlich nach Assembler umgesetzt, zB.
Result := Odd(Zahl);
würde im besten Falle so aussehen
AND EAX,1
könnte aber auch so ausehen
je nach Optimierung des Compiliers und den Vorrausetzung der benutzen Register.
Gruß hagen