There are several interrelated aspects of "static" and "extern" due to overloading these keywords. X3J11 has made a very good stab at spelling out all the relevant aspects. Look it up.