title: stdio inclusion in a header file
body: <p>I'm not totally sure but this looks wrong:</p>
  
  <p>I have a header file named <strong>fraction.h</strong> in which I store a fraction structure and the methods to handle it, one method is used to write a fraction in a file and in the signature of this function one argument is a <em>FILE</em> pointer.</p>
  
  <p><em>fraction.h:</em></p>
  
  <pre><code>...
  const Fraction * fraction_fwrite(const Fraction * f, FILE * file);
  ...
  </code></pre>
  
  <p><em>fraction.c:</em></p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include "fraction.h"
  ...
  </code></pre>
  
  <p>Now when I try to compile a program that uses a fraction, I get an error,</p>
  
  <p>here is what I have in my <em>Makefile</em>:</p>
  
  <pre><code>program_test: fraction.o program_test.o
  </code></pre>
  
  <p>and I include <strong>fraction.h</strong> in <strong>program_test.c</strong> of course.
  but I keep getting this error :</p>
  
  <p><strong>fraction.h:34:54: error: unknown type name 'FILE'</strong></p>
  
  <p>someone could explain the different steps through which the compiler includes files ?
  because <code>&lt;stdio.h&gt;</code> is in <strong>fraction.c</strong> so why does it strike this unfound-type error ?</p>
  
  <p>should I include <code>&lt;stdio.h&gt;</code> in <strong>fraction.h</strong> ? which looks not really appropriate from my measly experience.</p>