Am 05.03.2013 10:20, schrieb Graeme Geldenhuys:
On 2013-03-04 20:33, Howard Page-Clark wrote:
You can simulate this in FPC as well as TP by using a local typed
constant. e.g.

function GetValue: integer;
const value: integer = 0;
begin
    Inc(value);
    Result:= value;
end;

I've seen this before, and always been baffled by this. How can you
increment a "constant"? If you can, it is then a variable, no?
In Turbo Pascal these typed constants were used as the poor man's visibility managment. You basically had a global variable that only that function (and nested ones) can access.

In Delphi the $J switch was introduced which is disabled by default, which means that typed constants are not writeable. You can nevertheless switch it on.

Note: The important point here is that it is a typed constant. And there typed constants and variables are technically the same (both are located in the initalized read/write area of the executable file), while true constants are either inserted directly into the code (ordinals, floating point values) or are located in a read only area of the executable (strings) [if the format does not support a readonly area they are located in the read/write one as well though].

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to