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