title: why typedef struct in a header file in C?
body: <p>I saw some code in C header like this:</p>
  
  <pre><code>//a.h
  
  typedef struct name name;
  
  //a.c
  
  struct name {
     int number;
     int age;
  };
  </code></pre>
  
  <p>what is the reason why <code>typedef struct</code> in header file?  and kind of implement it in source file?</p>
  
  <p>Why not just define the struct in header file? what is the propose of doing this?</p>