Ich bin nicht davon ausgegangen dass der Compiler das optimieren kann. Habe trotzdem kurz mal nachgeschaut (32-Bit):
Code:
Result := Default (...);
mov edx,[ebp+$08]
mov edi,edx
xor eax,eax
stosd
stosd
stosd
stosd
Result.one := 0;
mov eax,[ebp+$08]
xor edx,edx
mov [eax],edx
mov [eax+$04],edx
Result.two := 0;
mov eax,[ebp+$08]
xor edx,edx
mov [eax+$08],edx
mov [eax+$0c],edx
Dass er zweimal die Adresse von Result holt finde ich dann aber schon etwas schwach. (Ich bin mir aber nicht ganz sicher ob nicht eine Optimierung hier ausgeschaltet ist)