我有一個功能叫警告:控制到達非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