title: How to rewrite C-struct designated initializers to C89 (resp MSVC C compiler)
body: <p>guys, I've this problem:</p>
  
  <p>Normally in C99 GCC (cygwin / MinGW / linux), there is dot-notation syntax for initializers in C struct.<br>
  Like this:</p>
  
  <pre><code>//HELP ME HOW TO REWRITE THIS (in most compact way) to MSVC
  static struct my_member_t my_global_three[] = {
      {.type = NULL, .name = "one"},
      {.type = NULL, .name = "two"},
      {.type = NULL, .name = "three"},
  };
  </code></pre>
  
  <p>Having <code>my_memeber_t</code> defined in header file as:</p>
  
  <pre><code>struct my_member_t {
      struct complex_type * type;
      char * name;
      int default_number;
      void * opaque;
  };
  </code></pre>
  
  <hr>
  
  <p>I'm compiling linux code in <strong>MSVC 9.0</strong> (Visual Studio 2008), on cygwin/MinGW this works ok.<br>
  BUT <strong>cl</strong> is unable to compile this (because of miserable C99 implementation): <code>error C2059: syntax error : '.'</code></p>
  
  <p><strong><em><code>PROBLEM:<br>
  How to rewrite (many) global structs in a way that MSVC</code></strong></em><code>(resp C89)</code><strong><em><code>can compile it?</code></strong></em></p>
  
  <hr>
  
  <p>Best regards and thanks for suggestions...</p>