'nen Grund kann ich mir nicht direkt vorstellen, außer die Speicherverwaltung betreffend.
Wobei man dieses vorallem für "schmutzige Tricks angewendet hat.
Delphi-Quellcode:
function test: Integer;
{$J+} // {$WRITEABLECONST ON}
const
i: Integer = 0;
{$J-} // {$WRITAEBLECONST OFF}
begin
i := i + 1;
Result := i;
end;
ShowMessage(IntToStr(Test));
ShowMessage(IntToStr(Test));
ShowMessage(IntToStr(Test));
ShowMessage(IntToStr(Test));
So konnte man auch ohne
OOP (private Felder) private und dennoch globale "Variablen" nutzen.
Toll finde ich übrigens auch diese Konstanten-Anwendung,
Das geht übrigens auch bei Records.
Und Typen kann man an dieser Stelle auch deklarieren.
Aber wenn du eine Konstante als Pointer übergeben willst/mußt, dann mußt du sie auch typisieren, damit sie nicht als Wert direkt am Verwendungsort eingebaut wird, sondern selber einen eigenen Speicherplatz und festen Typen besitzt.