title: Why are global variables bad, in a single threaded, non-os, embedded application
body: <p>Most of the objections I see to using global variables make sense since they refer to issues of multiple threads, thread safety, etc.</p>
  
  <p>But in a small, single threaded, non-OS, case, what objections do you have?  In my case, I'm writing my embedded system in "C", if it matters. I'm also the only developer on the product.</p>
  
  <p>Why would eliminating global variables make my code better?</p>
  
  <p>(After reading several responses, I realize I also should have pointed out that this system has no dynamic memory allocation (e.g. malloc). All the memory is statically allocated at compile time.)</p>