In a small code, we can track values of global variables. But if the code size grows, they make code less understandable (hence less maintainable). It becomes difficult to track which function modified the value and how.
- In above code, we notice one of the biggest problem of global variable that is Debugging. It means if we trying to figure out where that variable c has changed between thousands of lines of code is very difficult job.
- In multihreaded environment a global variable may change more than once (in different execution orders) and cause more problems.
- Global variables are generally used for constants. Using them for non-const values is not recommended.