gcc 4.4.2 c89
I am have been re-engineering some one else’s source code.
In a function someone has declared some static variables, but doesn’t seem to serve any purpose of having them static. I am just wondering if my comment below would be accurate?
static char tempstr[64];
For my understanding when declaring static variables inside a function it will retain is scope so acts like a global variable.
Also, if the static variable is declared in global scope, then its scope is limited to the file only.
Many thanks for any suggestions,
If I understand your interpretation, it is accurate.
Inside a function static means “allocate data segment memory so the value persists between function calls and so that all function instances (think, recursion or threads) share the same actual storage.”
This matters a lot if a previous value is used in a later function call or if a reference is leaked out of the function by an external call or by returning a pointer.