Variable redefinition in variable declared after struct type
<p>I'm writing a simple program, and had to write the following struct ( into my &quot;node.h&quot; file ):</p>
<pre><code>#ifndef NODE_H
#define NODE_H

struct _noh
{
    int peso;
    int altura;
    struct  _noh* filho[2];
} base = { 0, 0 ,{ &amp;base, &amp;base } }, *nnil = &amp;base;

typedef struct _noh noh;

noh* novonoh(int valor);

#endif
</code></pre>
<p>I have added the node.h file into my node.c file with the implementation of <strong>novonoh(int valor)</strong> function, when I add the &quot;node.h&quot; file into my main.c file, I got this error:</p>
<blockquote>
<p>1&gt;main.obj : error LNK2005: _base already defined in node.obj</p>
<p>1&gt;main.obj : error LNK2005: _nnil already defined in node.obj</p>
</blockquote>
<p>What is wrong with the code to get this error ?</p>
<p>How I can solve this ?</p>