В C, если у вас нет прототипа для функции при вызове, предполагается, что она возвращает int
и принимает неопределенное количество параметров.Затем, когда вы позже определите свою функцию как возвращающую void
и не принимающую параметров, компилятор видит это как конфликт.
В зависимости от сложности вашего кода, вы можете сделать что-то столь же простое, как перемещение определенияфункции перед ее использованием или добавьте функцию объявление в заголовочный файл и включите ее.
В любом случае, чистый эффект должен состоять в том, чтобы сделать прототип функции доступным до того, как она будетиспользуется.
Если вы добавите
void doc(void);
перед использованием функции, вы увидите прототип, видимый в области видимости, и ваше предупреждение исчезнет.
Я думаюэто наиболее вероятная причина вашего предупреждения.В вашем коде может быть явное несовместимое объявление doc
, но мы не можем сказать, потому что вы не опубликовали полный код.