Я работаю со структурами и typedef с внешним файлом, который работает локально, но при автоматической проверке я получаю неявное объявление функции "gcd"
этот код состоит из пары функций, которые выполняют базовые функции, такие как возврат сумм и т. Д. Функция gcd, которая была передана нам и подсчитывает наибольший общий делитель, и оба этих кода / фрагмента включены в другой файл main.c:
#include "fraction.h"
#include "fraction.c"
/* Reduce fraction */
void reduceFraction(Fraction *val) {
unsigned int fr = gcd(val->numerator, val->denominator);
val->numerator = val->numerator / fr;
val->denominator = val->denominator / fr;
}
А это жкд, который работает
unsigned int gcd(unsigned int u, unsigned int v)
{
// simple cases (termination)
if (u == v)
return u;
if (u == 0)
return v;
if (v == 0)
return u;
// look for factors of 2
if (~u & 1) // u is even
{
if (v & 1) // v is odd
return gcd(u >> 1, v);
else // both u and v are even
return gcd(u >> 1, v >> 1) << 1;
}
if (~v & 1) // u is odd, v is even
return gcd(u, v >> 1);
// reduce larger argument
if (u > v)
return gcd((u - v) >> 1, v);
return gcd((v - u) >> 1, u);
}
появляется ошибка:
неявное объявление функции "gcd" [-Wimplicit-function-объявление]