title: where is the includes and headers during compilation?
body: <p>I know the includes and headers will be copied into source file during preprocessor process.</p>
  
  <p>I use gcc to compile the file.</p>
  
  <p>source file(.c file):</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(){
      printf("Hello World!!!");
      return 0;
  }
  </code></pre>
  
  <p>I can see them in ".i" file </p>
  
  <pre><code># 1 "test.c"
  # 1 "&lt;built-in&gt;"
  # 1 "&lt;command-line&gt;"
  # 1 "/usr/include/stdc-predef.h" 1 3 4
  # 1 "&lt;command-line&gt;" 2
  # 1 "test.c"
  # 1 "/usr/include/stdio.h" 1 3 4
  # 27 "/usr/include/stdio.h" 3 4
  # 1 "/usr/include/features.h" 1 3 4
  # 367 "/usr/include/features.h" 3 4
  # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
  # 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  # 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
  # 368 "/usr/include/features.h" 2 3 4
  # 391 "/usr/include/features.h" 3 4
  # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
  # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
  # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
  # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
  # 392 "/usr/include/features.h" 2 3 4
  # 28 "/usr/include/stdio.h" 2 3 4
  .......
  </code></pre>
  
  <p>However, after generating the assembly file (.s), it seems all of them are gone.</p>
  
  <pre><code>    .file   "test.c"
      .section    .rodata
  .LC0:
      .string "Hello World!!!"
      .text
      .globl  main
      .type   main, @function
  main:
  .LFB0:
      .cfi_startproc
      pushq   %rbp
      .cfi_def_cfa_offset 16
      .cfi_offset 6, -16
      movq    %rsp, %rbp
      .cfi_def_cfa_register 6
      movl    $.LC0, %edi
      movl    $0, %eax
      call    printf
      movl    $0, %eax
      popq    %rbp
      .cfi_def_cfa 7, 8
      ret
      .cfi_endproc
  .LFE0:
      .size   main, .-main
      .ident  "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609"
      .section    .note.GNU-stack,"",@progbits 
  </code></pre>
  
  <p>My questions are:</p>
  
  <ol>
  <li><p>In the assembly file, where is the include stdio.h I added in the source code?</p></li>
  <li><p>What is the role of the includes and headers during compilation? How do they effect the compile process?</p></li>
  </ol>
  
  <p>Thanks in advance!</p>