Задать вопрос

Почему make file компилятора выдает ошибку, что функция переопределяется?

../data_module/data_process.c:8:5: error: redefinition of 'normalization'
    8 | int normalization(double *data, int n) {
      |     ^~~~~~~~~~~~~
In file included from ../data_module/data_process.h:4,
                 from ../data_module/data_process.c:3:
../data_module/data_process.c:8:5: note: previous definition of 'normalization' with type 'int(double *, int)'
    8 | int normalization(double *data, int n) {
      |     ^~~~~~~~~~~~~

Функция иницилизиаруется 1 раз
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 2
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Похоже на какие-нибудь циклические инклуды.
У вас в data_process.h случайно не включается data_process.c?
Так делать не надо.
Ответ написан
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Да, в общем-то русским (английским) по черному написано - data_process.c включает data_process.h, который первым определил функцию normalization().
А потом сам data_process.c определил функцию normalization() чуть пониже - ессно компилятор выдает замечание о переопределении, ибо оно есть :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ZhenyaMak
@ZhenyaMak
Писать качественный софт? Пфф, это не для меня.
Не юзайте using детки :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы