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?