Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
7. Jul 2005
Delphi's Code Optimierung ändert nicht die Symantik.
Prüfe das bitte nochmal nach, werde ich auch machen, obwohl ich das ja schon gemacht habe bevor ich mein Gegenbeispiel gepostet habe (in Delphi 7)
MyFunc und ShowThat sind aber schon gleich deklarariert?
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
6. Jul 2005
Womöglich doch nicht, oder du beziehst dich auf einen anderen Datentyp als Integer.
Das hängt vom Datentyp des Parameters ab. Bei Integern wird bei const trotzdem eine Kopie auf den Stack gelegt:
mov eax, // Wert von MyInteger in eax (=1. Parameter bei register-Call)
call DoSomeWildThings
Bei einem CallByRef müsste der Code so aussehen:
mov eax, OFFSET MyInteger // Adresse von MyInteger...
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
6. Jul 2005
Da stimmt doch was nicht. Wenn ich beim SpinEdit eine 5 einstelle und dann nach deiner Theorie dann doch eine 5 sehe, obwohl nach deiner Theorie ein 9 da stehen muss, dann kann da doch was nicht stimmen :wall:
Das const hat bei Integer nur die Wirkung, dass der Compiler den Parameter nicht verändern lässt. Er wird aber immernoch mit ByValue übergeben. const hat hauptsächlich bei Strings eine...