[問題] 離開function

看板C_and_CPP (C/C++)作者 ( )時間16年前 (2009/08/19 10:32), 編輯推噓7(7015)
留言22則, 5人參與, 最新討論串1/1
如果在 void xx的function中途要離開時, 用return; 會出現警告 `return' with no value, in function returning non-void 請問要怎麼消除警告呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.31.187

08/19 10:38, , 1F
感覺像是你的function宣告成不是void的
08/19 10:38, 1F

08/19 10:39, , 2F
回傳型態沒寫??那預設是int不是void喔....
08/19 10:39, 2F

08/19 10:49, , 3F
喔 我是宣告void *xx()
08/19 10:49, 3F

08/19 10:50, , 4F
應該看成 void* xx(); 這樣是預期回傳一個 void* 也就是
08/19 10:50, 4F

08/19 10:50, , 5F
應該回傳一個無型態指標才對, 而不是不回傳東西....
08/19 10:50, 5F

08/19 10:51, , 6F
題外話, 看到警告應該不是一味的想怎麼消除, 而是先查明
08/19 10:51, 6F

08/19 10:52, , 7F
原因, 修正不適當的code, 確定真是不必理會的才去關掉:)
08/19 10:52, 7F

08/19 10:53, , 8F
同意樓上 會有警告應該代表你的code有某種程度的問題
08/19 10:53, 8F

08/19 10:57, , 9F
喔 我剛剛試return NULL; 應該OK吧...
08/19 10:57, 9F

08/19 10:59, , 10F
function是你寫的嗎?? 回傳型態為 void* 代表這函數預期
08/19 10:59, 10F

08/19 11:00, , 11F
傳回一個指標, 而呼叫者(可能)預期接到一個指標; 如果程
08/19 11:00, 11F

08/19 11:00, , 12F
式機制不需要回傳, 你應該是把void*修正為void, 如果應
08/19 11:00, 12F

08/19 11:01, , 13F
該回傳, 你自己要搞清楚傳NULL回去會發生啥事正不正確.
08/19 11:01, 13F

08/19 11:09, , 14F
那個function是要給pthread_create用的
08/19 11:09, 14F

08/19 11:10, , 15F
我是參考前人的寫法-.- 沒有仔細研究......囧
08/19 11:10, 15F

08/19 11:19, , 16F
那麼你可以就NULL, 然後祈導這樣子一切就正常或者這段
08/19 11:19, 16F

08/19 11:20, , 17F
return別走到; 再不然就是仔細研究code研究document或者
08/19 11:20, 17F

08/19 11:20, , 18F
找前人問清楚它的用法; 折衷方案就是加個assert與註解
08/19 11:20, 18F

08/19 11:21, , 19F
然後把問題留給後人或未來的自己. Well~~這些已經跟
08/19 11:21, 19F

08/19 11:21, , 20F
coding比較無關了, 而是遇到這種問題您要如何處理了:)
08/19 11:21, 20F

08/19 11:22, , 21F
return rand(); (誤)
08/19 11:22, 21F

08/19 11:28, , 22F
推樓上 XDDDD 不過既然是 pthread 用的,return NULL應ok
08/19 11:28, 22F
文章代碼(AID): #1AYsGZkM (C_and_CPP)
文章代碼(AID): #1AYsGZkM (C_and_CPP)