В моей программе есть несколько структур с кросс-указателями, они определены так:
typedef struct
{
...
struct myvar *next;
struct myvar *prev;
...
} myvar;
typedef struct
{
...
myvar *first;
...
} variables;
И я получаю странную ошибку в следующем фрагменте кода:
variables *Variables;
...
Variables->first->prev->next = Variables->first;
Я использую MS Visual Studio, и он говорит
error C2037: left of 'next' specifies undefined struct/union 'myvar'
Я установил его на Compile as C Code (/ TC), в режиме C ++ все в порядке. В чем проблема и есть ли обходной путь, кроме как что-то подобное?
tmp = Variables->first->prev;
tmp->next = Variables->first;