>>358
#includeと切り離して説明すると、

file1.cとfile2.cで、それぞれ、static int n = 1; とstatic int n = 2; と宣言されていたら、
この二つのnはそれぞれ別の変数になる。
それぞれ1と2で初期化される。
file1.cで宣言されたnはfile1.cの中からしかアクセスできない。よそからは見えない。
file2.cで宣言されたnはfile2.cの中からしかアクセスできない。よそからは見えない。


file1.cとfile2.cで、それぞれ、int n = 1; とextern int n; と宣言されていたら、
この二つのnは同じ変数になる。
1で初期化される。
file1.cとfile2.cでnを書き換えると、同じ変数だから、とうぜん、file1.cとfile2.cから
みえるnは同じように書き換えられる。