Whenever some function or operator logic is supplied the value of some variable or some constant, a copy of that variable or constant value is being made and the function or operator logic is supplied with the address of the copy. Exceptions are being made when the function or operator logic is indicated to potentially modify the argument (or operand) value (and the argument or operand is a variable, that is).
However, the forth and back copying do incur some performance penalty. Some of
this copying overhead may be avoided when setting the
bit in the flags argument of the expression parsing function. The expression
evaluator will arrange for (some) more direct data access for function and
operator logics when appropriate (not necessarily every direct data access
oportunity will be detected and taken). When accessing data directly the
function and operator logics are supplied with the addresses of actual data for
variables and constants (and not with the addresses of some copies, as would
See Generation Flags.