[英]Error: Control may reach end of non-void function, Xcode
我知道我的問題有很多疑問和答案,
但由於情況不同,這些方法無濟於事。
這是我的代碼。
BinNode *Search(BinNode *p, const Member *x)
{
int cond;
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
else if(cond < 0)
Search(p->left, x);
else
Search(p->right, x);
}
和錯誤消息。
控制可能會達到非無效功能的終點
我認為我的函數將很好地執行,並且我認為這是重要的一行。
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
我認為這最終將無條件返回NULL或p。
我錯過了什么問題?
在“ non- void
”函數中, 必須在可能采用的每個分支上返回一些內容。 換一種說法:
BinNode *Search(BinNode *p, const Member *x)
{
int cond;
if(p == NULL)
return NULL;
else if((cond = MemberNoCmp(x, &p->data)) == 0)
return p;
else if(cond < 0)
return Search(p->left, x);
else
return Search(p->right, x);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.