title: multiple header files redefinition error in C
body: <p>When including multiple header files</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;stdbool.h&gt;
  #include "stackADT.h"
  #include "queueADT.h"
  </code></pre>
  
  <p>redefinition error occurs</p>
  
  <pre><code>In file included from graphTraverse3.c:10:
  ./queueADT.h:10:16: error: redefinition of 'node'
  typedef struct node
                 ^
  ./stackADT.h:9:16: note: previous definition is here
  typedef struct node
                 ^
  In file included from graphTraverse3.c:10:
  ./queueADT.h:69:20: warning: incompatible pointer types assigning to
        'QUEUE_NODE *' from 'struct node *' [-Wincompatible-pointer-types]
    ...queue-&gt;front = queue-&gt;front-&gt;next;
                    ^ ~~~~~~~~~~~~~~~~~~
  ./queueADT.h:93:16: warning: incompatible pointer types assigning to
        'QUEUE_NODE *' from 'struct node *' [-Wincompatible-pointer-types]
                  queue-&gt;front = queue-&gt;front-&gt;next;
                               ^ ~~~~~~~~~~~~~~~~~~
  ./queueADT.h:117:23: warning: incompatible pointer types assigning to
        'struct node *' from 'QUEUE_NODE *' [-Wincompatible-pointer-types]
      queue-&gt;rear-&gt;next = newPtr;
                        ^ ~~~~~~
  3 warnings and 1 error generated.
  </code></pre>
  
  <p>I tried attaching these, but it didn't work.</p>
  
  <pre><code>#ifndef _STACK_H_
  #define _STACK_H_
  ....content....
  #endif
  </code></pre>
  
  <p>Maybe it is only for C++.</p>
  
  <p>Added relevant header file parts.</p>
  
  <p>First queueADT.h</p>
  
  <pre><code>#ifndef _QUEUE_H_
  #define _QUEUE_H_
  
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;stdbool.h&gt;
  
  
  // data type
  typedef struct node
    {
      void* dataPtr;
      struct node* next;
    } QUEUE_NODE;
  </code></pre>
  
  <p>and this is stackADT.h.</p>
  
  <pre><code>#ifndef _STACK_H_
  #define _STACK_H_
  
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;stdbool.h&gt;
  
  // Structure Declarations
  typedef struct nodeS
    {
    void* dataPtr;
    struct nodeS* link;
    } STACK_NODE;
  </code></pre>