title: Unknown type name in header file prototype
body: <p>I have <em>lexer.c</em> file, which should be included to another .c file. It have</p>
  
  <p><code>int getToken(string *attribute) {}</code></p>
  
  <p>function and same prototype in <em>lexer.h</em> header file. Also i have helper <em>str.c</em> file for simplify work with strings. It has header file with declaration of type <strong>string</strong>:</p>
  
  <pre><code>typedef struct {
      char* str;      //string with \0 at the end
      int length;     //length of the string
      int allocated;  //allocated memory size
  } string;
  </code></pre>
  
  <p>So, lexer.h included from main file. Then lexer.c starts with:</p>
  
  <pre><code>#include "str.h"
  #include "lexer.h"
  </code></pre>
  
  <p>As i understanding, after including <em>str.h</em> type <strong>string</strong> is visible for <em>lexer.c</em> and lexer.h.
  But i have compilation error at the prototype in header file:</p>
  
  <pre><code>./lexer.h:65:14: error: unknown type name 'string'
  int getToken(string *attribute);
               ^
  1 error generated.
  </code></pre>
  
  <p>How can i use this type in header file?</p>