http://kor.i2p/books/The%20C%20Programming%20Language%20by%20K&R/chapter4.html
External variables, on
the other hand, are permanent, so they can retain values from one function
invocation to the next. Thus if two functions must share some data, yet
neither calls the other, it is often most convenient if the shared data is
kept in external variables rather than being passed in and out via arguments.