title: static - used only for limiting scope?
body: <p>Is the <code>static</code> keyword in C used only for limiting the scope of a variable to a single file? </p>
  
  <p>I need to know if I understood this right. Please assume the following 3 files,</p>
  
  <p>file1.c</p>
  
  <pre><code>int a;
  </code></pre>
  
  <p>file2.c</p>
  
  <pre><code>int b;
  </code></pre>
  
  <p>file3.c</p>
  
  <pre><code>static int c;
  </code></pre>
  
  <p>Now, if the 3 files are compiled together, then the variables "a" &amp; "b" should have a global scope and can be accessed from any of the 3 files. But, variable "c" being static, can only be accessed from file3.c, right?</p>
  
  <p>Does <code>static</code> have any other use in C ? (other than to limit the scope of a variable as shown above?)</p>