title: Use of "extern" storage class specifier in C
body: <p>How does the following example usage of extern specifer behave.</p>
  
  <p>We have a global variable int x both in files one.c and two.c
  We want to use these in three.c so have declared this variable in three.c as   </p>
  
  <p><code>extern int x;</code>  </p>
  
  <p>What would happen when we compile and link these files?</p>
  
  <p>My answer is: compilation of all these files should succeed, however the linker should flag an error at linking, due to multiple declarations of x.
  Would there be any difference in behavior in C++ ?  </p>
  
  <p>Is these any way to refer to int x (in three.c) simultaneously from both files, in C and C++.
  In C++, I guess we can use namespaces to acheive this. Right?  </p>