我有一个名为
的函数void *func(void *arg)
{
///does some operation
}
现在我收到编译器警告“控制到达非void函数的结尾”,即使我将返回类型声明为void *
。
有人可以告诉我如何解决此警告吗?
答案 0 :(得分:3)
返回类型为void *
,表示您将返回指针。也许您想键入void
,这意味着您不会返回任何内容?
答案 1 :(得分:0)
我们需要所有代码才能真正看到正在发生的事情,但是编译器无法从代码中判断出函数是否会到达终点并仍然返回一些内容。你说它会返回一个指针 - void*
- 并且什么也没有返回。这不是一个void函数,即void*
函数。编译器期望你返回一个void*
,但是你只需要退出函数的末尾。
你可能还有一个无限while
循环,编译器很聪明,知道该函数不会返回,但这是纯粹的推测,因为你没有发布所有代码。