title: How to forward typedef'd struct in .h
body: <p>I have
  Preprocessor.h</p>
  
  <pre><code>#define MAX_FILES 15
  
  struct Preprocessor {
      FILE fileVector[MAX_FILES];
      int currentFile;
  };
  
  typedef struct Preprocessor Prepro;
  
  void Prepro_init(Prepro* p) {
      (*p).currentFile = 0;
  }
  </code></pre>
  
  <p>I realized then that I had to separate declarations from definitions. So I created Preprocessor.c:</p>
  
  <pre><code>#define MAX_FILES 15
  
  struct Preprocessor {
      FILE fileVector[MAX_FILES];
      int currentFile;
  };
  
  typedef struct Preprocessor Prepro;
  </code></pre>
  
  <p>And Preprocessor.h is now:</p>
  
  <pre><code>void Prepro_init(Prepro* p) {
      (*p).currentFile = 0;
  }
  </code></pre>
  
  <p>That obviously, doesn't work because Pr..h doesn't know Prepro type. I already tried several combinations, none of them worked. I can't find the solution.</p>