[英]warning: control reaches end of non-void function
我有一個名為
void *func(void *arg)
{
///does some operation
}
現在,我得到一個編譯器警告,即使我將返回類型聲明為void *
,“控件也會到達非void函數的末尾”。
誰能告訴我如何解決此警告?
返回類型為void *
,這意味着您將返回一個指針。 也許您想輸入void
,這意味着您將不會返回任何內容?
我們需要所有代碼才能真正看到正在發生的事情,但是他的編譯器無法從該代碼中判斷該函數是否會到達末尾並仍然返回某些內容。 您說它將返回一個指針-一個void*
-並且什么也不返回。 那不是void函數,而是void*
函數。 編譯器期望您返回void*
,但是您只是掉到了函數的末尾。
您可能還具有無限的while
循環,編譯器足夠聰明,知道該函數將不會返回,但這純粹是推測,因為您並未發布所有代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.