Я получаю предупреждение: управление достигает конца не-void функции.
У меня есть рекурсивная функция, которая выглядит так:
unsigned long FUNCTION (....) {
if (something) {
return 1;
}
else if (something2) {
if(thing) {
FUNCTION(....);
}
else
return 0;
}
else {
return 0;
}
}
Я не могу просто поставить return 0; в конце функции, потому что она заканчивается тем, что моя программа делает то, чего я не хочу. Как я могу предупредить предупреждение?
Филиал, вызывающий FUNCTION(...)
ничего не возвращает. В результате, если эта ветка взята, ваша функция имеет неопределенное поведение. То, что нужно вернуть, не может быть определено из вашего кода: вам придется придумать это.
Обратите внимание, что FUNCTION
обычно указывает, что имя является макросом: существует несколько соглашений, как называются имена, чтобы избежать путаницы. Вы можете вызывать свои функции со всеми заглавными буквами, но это может быть не очень хорошая идея.
return FUNCTION(....);
в вашем теле функции