Thema: Delphi Abstrakter Fehler oO

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Abstrakter Fehler oO

  Alt 17. Sep 2006, 23:42
Delphi legt das Funktionsergebnis in dem Register EAX ab. Wenn ich nun der interne Result Variable etwas zuweise am Anfang wrd das un EAX abgelegt. Optimiert der Compiler nun den Code, hat er ein Register weniger, dass er benutzen kann bzw. erst wieder frei machen muss und zum Schluss wieder belegt. Weise ich Result am Schluss zu, hat der Compiler das EAX Register noch für Optimierungen frei.

Zitat von Martin K:
Aber Result am Anfang auf einen leeren String zu setzen und dann nachher auf die gewünschten Werte, macht Sinn - sonst könnte das Ergebnis bei einem Fehlschlag undefiniert sein.
Man kan auch anders sicherstellen, dass der Rückgabewert nicht undefiniert ist:
Delphi-Quellcode:
var
  s: String;
begin
  s := '';
  // mach was
  Result := s;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat