У вас есть что-то вроде:
int function(void)
{
return;
}
Добавьте возвращаемое значение или измените тип возвращаемого значения на void.
Сообщение об ошибке очень ясно:
предупреждение: 'return' без значения, в функции, возвращающей non-void.
Возвращение без значения похоже на то, что я показал. Сообщение также сообщает вам, что если функция вернет void, она не выдаст предупреждение. Но поскольку функция должна возвращать значение, а ваш оператор return - нет, у вас есть проблема.
Это часто указывает на древний код. В дни, предшествовавшие стандарту C89, компиляторы не обязательно поддерживали void. Принятый стиль был тогда:
function_not_returning_an_explicit_value(i)
char *i;
{
...
if (...something...)
return;
}
Технически, функция возвращает int
, но никакого значения не ожидалось. Этот стиль кода выдает предупреждение, которое вы получили - и C99 официально запрещает его, но компиляторы продолжают принимать его по причинам обратной совместимости.