Einzelnen Beitrag anzeigen

Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

Werden Parameter rückwärts gelesen???

  Alt 7. Dez 2006, 18:36
Hi!

Ist es normal, dass Parameter rückwärts eingelesen werden? Die beiden folgenden Codes zeigen das nämlich:

So wird 24 gezeigt, ganz normal also:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   Stack: TStack;
begin
   Stack := TStack.Create;
   Stack.Push(Pointer(4));
   Stack.Push(Pointer(2));
   ShowMessage(IntToStr(Integer(Stack.Pop)) + IntToStr(Integer(Stack.Pop)));
   Stack.Free;
   Application.Terminate;
end;
Dieser Code hingegen liefert 42:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   Stack: TStack;
begin
   Stack := TStack.Create;
   Stack.Push(Pointer(4));
   Stack.Push(Pointer(2));
   ShowMessage(xyz(Integer(Stack.Pop), Integer(Stack.Pop)));
   Stack.Free;
   Application.Terminate;
end;

function xyz(a, b: Integer): string;
begin
   Result := IntToStr(a) + IntToStr(b);
end;
Hat das irgendeinen Sinn?
  Mit Zitat antworten Zitat