title: Non-extern function with C linkage
body: <p>Is it possible to declare a function with C linkage without it having external linkage? When trying to compile</p>
  
  <pre><code>extern "C" static void f() {}
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>f.cc:1: error: invalid use of 'static' in linkage specification
  </code></pre>
  
  <p>which makes sense, in a way. In <code>namespace { extern "C" void f() {} }</code>, the <code>extern</code> specifier seems to override the anonymous namespace's restricted scope.</p>
  
  <p>If this is not possible, does it matter when passing a function pointer to C?</p>