title: Breaking program into multiple files - getting error "redefinition; different basic types"
body: <p>I want to break my program into multiple files<br>
  1. <code>main.c</code> - is the main function<br>
  2. <code>definitions.h</code> - contains #define, typedef,  function prototypes<br>
  3. <code>functions.c</code> - contains function(prototypes in definitions.h)</p>
  
  <p>In definitions.h, I have typedef for structure <strong>MyStruct</strong>, which is used in <code>definitions.h</code> &amp; <code>functions.c</code> </p>
  
  <p>I have done the following: </p>
  
  <p>in <code>main.c</code>, I have <code>#include "definitions.h"</code> &amp; <code>#include "functions.c"</code><br>
  in <code>functions.c</code>, I have <code>#include "definitions.h"</code></p>
  
  <p>now, I am getting the error error <code>C2371: 'MyStruct' : redefinition; different basic types</code> (It is visual Studio)</p>
  
  <p>Now, I can't figure out why I am getting this error !
  Thanks !</p>
  
  <hr>
  
  <p>So you suggesting doing the following </p>
  
  <p><code>main.c</code> put  <code>#include "definitions.h"</code> (with typedef &amp; #define &amp; function headers)</p>
  
  <p>Now, how do I tell compiler that it needs to look into <code>functions.c</code> file for function definitions ?<br>
  Should I put <code>#include "functions.c"</code> into <code>definitions.h</code> file ? </p>
  
  <p>Thanks !</p>