我有一个功能叫警告:控制到达非void函数结束
void *func(void *arg)
{
///does some operation
}
现在我得到一个编译器警告说:“控制到达非void函数结束”即使我声明的返回类型为void *
。
任何人都可以请告诉我如何解决这个警告?
我有一个功能叫警告:控制到达非void函数结束
void *func(void *arg)
{
///does some operation
}
现在我得到一个编译器警告说:“控制到达非void函数结束”即使我声明的返回类型为void *
。
任何人都可以请告诉我如何解决这个警告?
我们需要所有代码才能真正看到发生了什么,但是编译器无法从该代码中判断函数是否会达到最终结果并返回某些内容。你说它会返回一个指针 - 一个void*
- 并且什么也没有返回。这不是一个无效函数,那是一个void*
函数。编译器希望你返回一个void*
,但是你可能会掉到函数的尾部。
您也可能有一个无限的while
循环,编译器足够聪明地知道该函数不会返回,但这是纯粹的推测,因为您没有发布所有代码。
请发布您的所有代码,至少一个工作示例。 – 2011-08-25 12:21:37