title: C typedef linked list
body: <p>Supposed I have a struct with pointers to variables of the same type, for example for a simple linked list implementation. </p>
  
  <p>Which of these two approaches is the most correct one?</p>
  
  <p>EDIT: assume I have previously declared <code>typedef struct list_ list;</code>, otherwise Option 2 will not compile</p>
  
  <p>Option 1:</p>
  
  <pre><code>typedef struct _list
  {
      int num;
      struct _list *next;
  } list;
  </code></pre>
  
  <p>Option 2:</p>
  
  <pre><code>typedef struct _list
  {
      int num;
      list* next;
  } list;
  </code></pre>
  
  <p>Both compile and work, so which should I use?</p>