Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#12

Re: Startbutton aktivieren/deaktivieren

  Alt 3. Jun 2005, 18:16
Ich hab jetzt folgendes kleines testprogramm geschrieben
Delphi-Quellcode:
procedure h(a: integer);
begin
  ShowMessage(IntToStr(a));
end;

procedure a({const/var/nix}j: integer); assembler;
asm
  push eax
  call h
  pop eax
end;
folgende Aufrufe brachten die ergebnisse (bei parameter 123):
  • Header: nix
    Ergebnis: 123
  • Header: const
    Ergebnis: 123
  • Header: var
    Ergebnis: Speicheradresse

Daraus schließe (ich zumindest), dass der Const-parameter also nur dem compiler sagt, dass dieser wert nie verändert werden wird, aber im eigentlichen bei der parameterübergabe kein unterschied liegt (zwischen const und nix). bei var wird hingegen klarerweise die adresse mitgegeben.
Es kann aber auch gut sein, dass der const-parameter durch den compiler optimiert wird, dass bei Datentypen > Pointer der Zeiger darauf mitgegeben wird, nachdem der wert sowieso nicht veränder wird.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat