Hi Tomas,

On 4/4/23 09:01, Tomas Hajny via fpc-pascal wrote:

[cut]

You don't need to change "var" to "const" - if you want to ensure the variables to persist in between the function/procedure runs, you need to move them to the global level, i.e. outside of the functions/procedures. It is not advisable as a general practice (to keep all variables globally), because then you might e.g. access the same variable from multiple functions by mistake, but it would probably solve your issue. Obviously, you might need to solve potential conflicts if you use the same variable names in multiple functions/procedures (e.g. by prepending the function/procedure name to the variable name or something like that).


I could move them to global scope, and add a prefix to avoid name collisions, but using a "const" section seems more readable to me since I don't need to add a prefix.

The wiki page says (https://wiki.freepascal.org/Const):

"The declaration const in a Pascal program is used to inform the compiler that certain identifiers which are being declared are constants, that is, they are initialized with a specific value at compile time as opposed to a variable which is initialized at run time.

However, the default setting in Free Pascal is to allow const identifiers to be re-assigned to."

Then it says there is a flag to make reassigning to a const variable an error. But if I ignore that, it would seem this is just what I need, since this seems to make the variable have a whole-program lifetime, no ?

What is the technical downside to using "const", or is it just cosmetic ?

Regards,
Jacob
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to