title: C - MSVS 2013 "C2374: 'names': redefinition, multiple initialization" - why?
body: <p>Why does MSVS refuse to compile the following?</p>
  
  <p><strong>config.h</strong></p>
  
  <pre><code>char *names[][2] = { 
      { "Marry", "McBlith" }, 
      { "Nadja", "Nurales"}
  };   
  </code></pre>
  
  <p><strong>main.c</strong></p>
  
  <pre><code>#include &lt;Windows.h&gt;
  #include &lt;stdio.h&gt;
  #include "config.h"
  
  int main()
  {
     printf("TEST (names[0][0]): %s\n", names[0][0]);
  
     return 0;
  }
  </code></pre>
  
  <p><strong>Output:</strong></p>
  
  <pre><code>1&gt;c:\projects\test\config.h(2): error C2374: 'names' : redefinition; multiple initialization
  1&gt;c:\projects\test\config.h(2) : see declaration of 'names'
  </code></pre>
  
  <p><strong>Error List:</strong></p>
  
  <pre><code>Error 1 error C2374: 'names' : redefinition; multiple initialization c:\projects\test\config.h 2 1 test
  </code></pre>
  
  <p>Why does <strong>MSVS 2013</strong> tell me its a multiple initialization when the array <code>names[][2]</code> is only declared and initialized once in <code>config.h</code>?</p>
  
  <p>What am I doing wrong and what do I have to change to get this working?</p>
  
  <p>Greetings</p>