Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#20
  Alt 3. Jul 2003, 19:16
Zitat von Hansa:
Code:
procedure Test (VAR i : integer);
  begin
    i := 5;
  end;
Wieso ist da kein Rückgabewert ???
Also gut

"Rückgabewert" bedeutet, dass die Rückgabe der Funktion nach Ablauf des Programmblocks (=Funktion) in das Register EAX geschrieben wird. Bei einer Funktion ist da was drin, bei einer Prozedurr wird da nichts reingeschrieben.
Ein Var-Parameter ist kein Rückgabewert. Anstatt
procedure Test (VAR i: Integer); könntest du auch schreiben:
procedure Test (pi: PInteger); VAR bedeutet, dass nicht der Speicherblock, den die Variable belegt, an die Funktion übergeben wird, sondern nur die Startadresse dieses Blocks. Die Funktion kann anhand dieser Adresse in den Speicherblock der Variablen schreiben, und somit kann sich der Wert derr Variablen ändern.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat