Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#25

AW: Code Optimisation: Benutzung von const in prozedur-Köpfen

  Alt 9. Jun 2017, 13:24
Das kommt drauf an. Bei trivialen Datentypen verhält sich const wie CallByValue:
Delphi-Quellcode:
Unit1.pas.45: A(X);
005CDEEF 8B45F8 mov eax,[ebp-$08] // CallByValue
005CDEF2 E8D9FFFFFF call A // procedure A(X: Integer)
Unit1.pas.46: B(X);
005CDEF7 8D45F8 lea eax,[ebp-$08] // CallByReference
005CDEFA E8D5FFFFFF call B // procedure B(var X: Integer)
Unit1.pas.47: C(X);
005CDEFF 8B45F8 mov eax,[ebp-$08] // CallByValue
005CDF02 E8D1FFFFFF call C // procedure C(const X: Integer)
Gut... Mov und lea hat laut meiner x86 reference die gleiche Anzahl von Taktzyklen... Also egal... aber wenn es CallByValue ist - ist die nicht Beschreibbarkeit Compilermagic...?
  Mit Zitat antworten Zitat