title: Visual C accepting wrong number of arguments?
body: <p>Why does this compile in Visual Studio:</p>
  
  <pre><code>void foo(int a) {}
  
  int main() {
      foo(1,2);
  }
  </code></pre>
  
  <p>There is a warning</p>
  
  <pre><code>source_file.c(4) : warning C4020: 'foo' : too many actual parameters
  </code></pre>
  
  <p>but why isn't it an error as it is the case with gcc/clang?</p>
  
  <p>I am aware of K&amp;R-style function definitions, but that would only apply for <code>foo()</code> which would take a variable number of arguments.</p>
  
  <p>Citations from the standard allowing this would be greatly appreciated.</p>