Множественное определение ошибки компоновки в C - PullRequest
3 голосов
/ 11 августа 2011


Я занимаюсь разработкой приложения на C. Я хочу использовать локальную функцию с одинаковым именем в нескольких исходных файлах. Позвольте мне упростить вопрос:

В аду.

void myLocalFunc(){ printf("Hello hell\r\n"); }

В мире.c

void myLocalFunc(){ printf("Hello world\r\n"); }

Поскольку они являются только локальными функциями, я не объявляю их в заголовочных файлах. Но когда я компилирую проект, он выдает мне сообщение об ошибке «Множественное определение myLocalFunc», а также следующее: «Множественное определение myLocalFunc (сначала определено здесь)».

В чем здесь моя ошибка?

1 Ответ

8 голосов
/ 11 августа 2011

Замените его на

static void myLocalFunc(){ printf("Hello world\r\n"); }

Или, если вы используете C ++, вы также можете использовать анонимное пространство имен, например:

namespace {
void myLocalFunc(){ printf("Hello world\r\n"); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...