Избегайте предупреждений «переопределения typedef» при определении структур

Я определяю некоторые структуры, которые ссылаются друг на друга, и печатаю определения структур перед их использованием, поэтому каждая структура «знает» о других (получала ошибки компиляции без этого). Не уверен, если это необходимо, или исправить.

Теперь при компиляции с помощью gcc я получаю предупреждения о переопределении typedef. Как правильно это сделать?

typedef struct a A;
typedef struct b B;
typedef struct c C;

struct a {
    B* list;
    A* parent;
};

struct b {
    A* current;
    B* next;
};

struct c {
    A* current;
    A* root;
};

ОБНОВИТЬ: Тупое, неправильное копирование привело к тому, что этот заголовок был дважды включен в другой файл. Я новичок в C и подумал, что это как-то связано с наличием структур в файле дважды. Спасибо @Kevin Баллард за голову.

Ответы на вопрос(1)

Ваш ответ на вопрос