Hallo ihr beiden,
Zitat von
alcaeus:
das Schluesselwort const wird verwendet, um dem Programmierer der die Routine verwendet zu zeigen, dass ganz bestimmt nichts an der Variable geaendert wird. AFAIR laesst Delphi in dem Fall keine Zuweisung an die Variable innerhalb der Funktion zu. Bei einer "normalen" Uebergabe [Foo(bar: Integer)] ist dies nicht der Fall.
Ich kenne das Ganze so...
Param: Typ: Param stellt eigene Variable dar, Wert wird in diesen Param von der Übergabe kopiert, d.h. Änderungen haben keine Auswirkungen auf die ursprünglichen Übergabevariable.
var Param: Typ Param ist eigentlich ein Pointer, der auf Übergabe zeigt. Änderungen wirken sich auch auf Übergabevariable aus.
const Param: Typ Param ist eigentlich ein Pointer, der auf Übergabe zeigt. Änderungen dürfen jedoch nicht vorgenommen werden.
Wenn dem nicht so ist, klärt mich bitte auf
Zitat:
Delphi braucht dann auch keinen Speicher, um eine Kopie des übergebenen Strings bereitzustellen, da dieser nicht geändert werden kann.
Sorry, aber das ist in jedem Fall Quatsch! Entweder es wir dein Pointer übergeben (der benönigt 4 Byte) oder der ganze Wert wird kopiert, in dem Falle wird SizeOf(Typ)-Speicher benötigt...
Gruß, Marco