title: what files need to be include in header files? structs? <stdbool.h>?
body: <p>Suppose I define a struct in "struct.h" like so</p>
  
  <pre><code>struct box {
      int value; 
  }
  </code></pre>
  
  <p>and I use that struct in another file say "math.c"</p>
  
  <pre><code>#include "struct.h"
  
  struct box *sum(struct box *a1, struct box *a2) {
      struct box *a3 = malloc(sizeof (struct box));
      a3-&gt;value = a1-&gt;value + a2-&gt;value;
      return a3;
  }
  </code></pre>
  
  <p>would "math.h" need to include "struct.h" as well?</p>
  
  <pre><code>#include "struct.h"
  
  struct box *sum(struct box *a1, struct box *a2);
  </code></pre>
  
  <p>And what if struct box were replaced with bool, do I need to include stdbool.h in both the header and c file? it seems like the compiler wants this. </p>
  
  <p>When should you include files in the header rather than the .c? also wondering if theres something unusual with my example.</p>
  
  <p>Thanks!</p>