Global variables and style
Global variables have caused almost as much controversy as the
goto statement. Some programmers say you should never use
them. Other programmers use them on a regular basis. In fact, while
global variables should not be overused, they can simplify your code
considerably. The following guidelines may help you decide where to
- Always think of using local variables first. Global variables can puncture the encapsulization of your functions, that is, the logical isolation of your functions from the rest of your code. It is difficult to see what variables are being passed to a function unless they are all passed as parameters, so it is easier to debug a program when encapsulization is maintained.
- Local variables may be impractical, however, if they mean passing the same dozen parameters to multiple functions; in such cases, global variables will often streamline your code.
- Data structures that are important to the whole program should be defined globally. In "real programs" such as GNU Emacs, there are far more global variables than there are local variables visible in any one function.
Finally, don't use local variables or parameters that have the same names as global identifiers. This can make debugging very difficult.