Why is 'a=GetIntArg (top_estack);' wrong?

Previous TI-Basic and C Next

Q: What is wrong in doing
a = GetIntArg (top_estack);
It seems that it works fine, but you always use an auxilary variable...
A: It works fine sometimes, but not always. See, GetIntArg is a function-looking macro, with changes the value of its actual argument. So, if you write
a = GetIntArg (top_estack);
you will also change the value of TIOS system variable top_estack, and I am not sure that you really want this. So, I strictly recommend using an auxilary variable, like in the following example:
ESI argptr = top_estack;
...
a = GetIntArg (argptr);
Using this method, you will avoid unexpected changes of top_estack.