Redefinicja; różne podstawowe typy (typedef struct)

Mam trochę problemów z próbą poprawnego działania struktur, które są zdefiniowane w różnych plikach. Z tego co wiem, błąd mówi mi, że struktura jest definiowana dwa razy. Wierzę, że być może będę musiał użyć czegoś zewnętrznego? Próbowałem eksperymentować i szukać pomocy w Google, ale bezskutecznie.

Jakakolwiek pomoc byłaby najbardziej ceniona, dziękuję. Wszystkie cztery moje pliki są poniżej.

PLIK: Foo.h

typedef struct
{
    int number;
} my_struct;    // Redefinition; different basic types

PLIK: Foo.c

#include "Foo.h"
#include "Bar.h"
#include <stdio.h>

my_struct test;

int main(void)
{
    test.number = 0;
    DoSomething(&test);
    printf("Number is: ", &test.number);
}

PLIK: Bar.h

#include "Foo.h"

void DoSomething(my_struct *number);

PLIK: Bar.c

#include "Bar.h"

void DoSomething(my_struct *number)
{
    number->number = 10;
}

questionAnswers(1)

yourAnswerToTheQuestion