title: extern "C" (C linkage) by default
body: <h2>Question</h2>
  
  <p>Do GCC, MSVC, or Clang, or some combination support setting linkage to default to C?</p>
  
  <h2>Background</h2>
  
  <p>I have a large mixed C/C++ project, and while it's easy and logical to export symbols in the C++ sources with C linkage, those same sources are assuming the stuff in the rest of the project are under C++ linkage.</p>
  
  <p>The current situation requires me to explicitly wrap anything the C sources use that is defined in the C++ sources and everything the C++ sources use from the C sources with <code>extern "C++"</code>.</p>
  
  <p>To top things off, I can't put <code>extern "C"</code> around entire source or header files, as the actual C++ stuff will then complain. (Such as from <code>#include &lt;memory&gt;</code> or templates I've defined.)</p>