Ansi C позволяет двум различным структурам содержать указатели друг на друга (также показано в структурах, которые ссылаются друг на друга ). Я знаю, что это не очень хорошая идея во многих обстоятельствах, но здесь вопрос не в этом. Можно ли добиться того же, используя структурированные по определению структуры?
Код ниже работает просто отлично.
struct b;
typedef struct a {
struct b *bb;
} A;
typedef struct b {
struct a *aa;
} B;
Но при использовании типа "B" это не удается
typedef struct b B;
typedef struct a {
B *bb;
} A;
typedef struct b {
A *aa;
} B;
с
ошибка: переопределение typedef ‘B’
Можно ли сказать компилятору, что "B" будет объявлен позже, и использовать его в определении A?