Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#23

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:14
Es macht keinen Unterschied.

Eine "richtige" Konstante wird, ähnlich einem Makro, an jeder Stelle ersetzt. (Strings sind Zeiger, also steht "überall" der Zeiger zum String)

Es ist das selbe Ergebnis, also wenn man den die String-Konstante den String direkt einsetzt.
Noch besser, denn wenn der gleiche String an mehreren Stellen vorkommt, dann führt die Codeoptimierung das zusammen und auch da ist dann überall der gleiche Zeiger zur selben String-Konstante.



Bei einer typisierten Konstante ist es ein Unterschied,
denn typlisierte Konstanten sind in Wirklichkeit schreibgeschützte Variablen.
Also hier ist dann überall der Zeiger auf die "Variable" eingebaut.



Bei Strings kommt das Verhalten des Compilers nicht gut rüber.
Mit Integern fällt es besser auf.

Egal ob untypisierte Konstante oder die Zahl direkt im Code, am Ende ist die Zahl direkt im Compilat.
Bei einer Variable oder typisierten Konstante wird an allen Stellen eine Referenz zur globalen Varialble/Konstante im Compilat zu finden sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat