macro guard doesn't work in header
<p>hey everyone, i got code like this:</p>

<pre><code>//a.h 
#ifndef SB
#define SB
namespace A{ int a = 10; int b = 10;}
#endif
</code></pre>

<p>however, if I imported the a.h in a.cpp file, the compiler would complain:</p>

<pre><code> error LNK2005: "int A::a" (?a@A@@3HA) already defined in a.obj
</code></pre>

<p>It looks like compiler would combine .h file and .cpp file together without explicit "import" statement. But it doesn't make sense to me that it would happen with the macro guard defined.</p>

<p>I use Visual C++</p>
