Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Ausgabewert einer Function löst sich selber aus (oder so

  Alt 31. Okt 2007, 23:31
Zitat von Cyberbob:
Die Frage versteh ich jetzt nicht. Result ist immer der Rückgabewert einer Funktion. Wobei du ihn in Delphi sogar mehrmals ändernkannst und de Funktion erst verlassen wird, wenn du es sagst (Anderst als in C/C++).
Der Thread-Ersteller möchte einen Wert zurückgeben, ohne "Return" nutzen zu müssen, da eine seiner Variablen so heißt. Mehr Möglichkeiten als die 2 genannten gibt es nunmal nicht.

Zitat von Cyberbob:
Wenn er eine Variable mit dem gleichen Namen wie der einer Funktion verwendet, geht der Compiler davon aus, dass die Funktion gemeint ist und ruft sie rekursiv wieder auf. Solange bis ein Stack-Überlauf auftritt.
Nein, du rufst die Funktion nicht auf. Anstelle von "Result" kann man auch den Funktionsnamen nutzen, was sogar in Pascal die einzige Möglichkeit war, einen Wert zurückzugeben. Dies ist vermutlich aus Kompatibilitätsgründen in Delphi weiterhin möglich, meiner Meinung nach jedoch nicht unbedingt zu empfehlen.

Edit:

Zur Verdeutlichung ein Beispiel. Beides funktioniert (der Sinn der Funktion sei mal dahingestellt):

Delphi-Quellcode:
function Sum(a, b: Integer): Integer;
begin
  Result := a + b;
end;

function Sum(a, b: Integer): Integer;
begin
  Sum := a + b;
end;
  Mit Zitat antworten Zitat