У меня есть два *.c
файла. fileA.c
и fileB.c
Я определяю структуру с одинаковым именем в обоих файлах, но оба они локально присутствуют в каждом файле как глобальные переменные.
Например:
fileA.c
typedef struct
{
int a;
}MyHandler_t;
MyHandler_t myHandler =
{
.a = 0,
};
fileB.c
typedef struct
{
int a;
}MyHandler_t;
MyHandler_t myHandler;
Проблема в том, что если я попытаюсь инициализировать переменную a в структуре в файле B, я получу multiple definition of "myHandler"
.
Даже если я пытаюсь оставить это в пустых скобках, я получаю ту же ошибку.
Почему это происходит?
Оба файла содержат функции, которые используются в main.c в основной функции, но эти структуры выше являются локальными глобальными переменными, которые используются для управления конечным автоматом.