Как переписать инициализаторы, назначенные C-struct, на C89 (соответственно компилятор MSVC C)

ребята, у меня такая проблема:

Обычно в C99 GCC (cygwin / MinGW / linux) есть точка -notation синтаксис для инициализаторов в структуре C.
Примерно так:

//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"},
};

Имея my_memeber_t , определенный в файле заголовка как:

struct my_member_t {
    struct complex_type * type;
    char * name;
    int default_number;
    void * opaque;
};

Я компилирую код Linux в MSVC 9.0 (Visual Studio 2008), на cygwin / MinGW это работает хорошо.
НО cl не может скомпилировать это (из-за жалкой реализации C99): ошибка C2059: синтаксическая ошибка: '.'

ПРОБЛЕМА:
Как переписать (многие) глобальные структуры таким образом, чтобы MSVC
(соответственно C89) мог их скомпилировать?


С уважением и спасибо за предложения ...

15
задан DinGODzilla 26 March 2011 в 06:47
поделиться