Ребята, у меня есть эта проблема:
Обычно в C99 GCC (cygwin/MinGW/linux) существует синтаксис точечной нотации для инициализаторов в C struct.
Вот так:
//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 это работает нормально.
BUT cl не может скомпилировать это (из-за несчастной реализации C99): error C2059: syntax error : '.'
PROBLEM:
How to rewrite (many) global structs in a way that MSVC(resp C89)
can compile it?
С наилучшими пожеланиями и благодарностью за предложения...