Unusual Data Types
1. Use structures to clarify data relationship.
2. Use structures to simplify operations on blocks of data.
3. Use sturctures to simplify parameter lists.
4. Use structures to reduce maintenance.
Common problems with global data
1. Inadvertent changes to global data
2. Bizarre and exciting aliasing problems with global data.
3. Re-entrant code problems with global data.
4. Code reuse hindered by global data.
5. Uncertain initization-order issues with global data.
6. Modularity and intellectual manageability damaged by global data.
Reason to user global data
1. Preservation of global values.
2. Emulation of named constants.
3. Streamlining use of extremely common data.
4. Eliminating tramp data.
How to reduce the risks of using global data
1. Develop a naming convention that makes global varables obvious.
2. Create a well-annotated list of all your global variables.
3. Don't use global variables to contain intermediate results.
4. Don't pretend you're not using global data by putting all yoru data into a monster object and passing it everywhere