title: Can a static variable be declared extern in C?
body: <p>So, let's say, I have:</p>
  
  <p><code>file1.c</code></p>
  
  <pre><code>int i;
  static int j;
  int main ()
  {
      for ( int k = 0; k &lt; 10; k++ )
      {
         int foo = k;
      }
  }
  </code></pre>
  
  <p><code>file2.c</code></p>
  
  <pre><code>{
  // the following statements are before main.
  extern int i; // this is acceptable, I know since i acts as a global variable in the other file
  extern int j; // Will this be valid? 
  extern int foo; // Will this be valid as well?
  }
  </code></pre>
  
  <p>I therefore, have a doubt that the statements marked with a question mark, will they be valid?</p>