我收到警告:控制到达无效功能的结束。
我有一个递归函数,如下所示:
unsigned long FUNCTION (....) {
if (something) {
return 1;
}
else if (something2) {
if(thing) {
FUNCTION(....);
}
else
return 0;
}
else {
return 0;
}
}
我不能把回报0;在功能的最后,因为它最终使我的程序做我不想要的。如何使警告消失?
答案 0 :(得分:3)
调用FUNCTION(...)
的分支不会返回任何内容。因此,如果采用此分支,则您的函数具有未定义的行为。无法从您的代码中确定需要返回的内容:您必须提出这一点。
请注意,FUNCTION
通常表示该名称是一个宏:有一些约定如何命名以避免混淆。您可以使用全部大写字母调用您的函数,但这可能不是一个好主意。