title: c++ "#include" output explanation
body: <p>Trying to understand how <code>#include</code> works. I'm reading that, during pre-procesing, it just replaces itself with the contents of the referenced file. </p>
  
  <p>To verify, I create two files. A file named <code>otherfile</code> containing only the string <code>1234</code>, and a file <code>test.cpp</code> which contains</p>
  
  <pre><code>#include otherfile
  abcd
  </code></pre>
  
  <p>I run <code>g++ -E test.cpp</code>, and the output I get is</p>
  
  <pre><code># 1 "test.cpp"
  # 1 "&lt;built-in&gt;" 1
  # 1 "&lt;built-in&gt;" 3
  # 373 "&lt;built-in&gt;" 3
  # 1 "&lt;command line&gt;" 1
  # 1 "&lt;built-in&gt;" 2
  # 1 "test.cpp" 2
  # 1 "./wtf" 1
  1234
  # 2 "test.cpp" 2
  abcd
  </code></pre>
  
  <p>Where do the rest of the lines come from, and what do they mean?</p>