title: why printf output zero for a non-zero double?
body: <p>I have a piece of code:<br>
  Under <code>Windows MSVC 2012</code></p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  
  
  namespace myname{
      double var = 42;
  }
  
  extern "C" double _ZN6myname3varE = 10.0;
  
  int main(){
      printf("%d\n", _ZN6myname3varE);
  
      return 0;
  }
  </code></pre>
  
  <p>The output is <code>0</code>. But I think the output should be <code>10</code>. Could you help explain why?</p>