title: Where do we use .i files and how do we generate them?
body: <p>I was going through the GCC man page, I found the following line:</p>
  
  <pre><code> file.i
             C source code that should not be preprocessed.
  </code></pre>
  
  <p>I know that running <code>gcc -E foo.c</code> stops the compiler after preprocessing;
  but what is the real world application of creating <code>.i</code> files.</p>
  
  <p>Also is there a way of generating a <code>.i</code> files other than <code>gcc foo.c -E &gt; foo.i</code>?</p>