作者ckai1983 ( )
看板C_and_CPP
标题[问题] 离开function
时间Wed Aug 19 10:32:02 2009
如果在 void xx的function中途要离开时,
用return;
会出现警告
`return' with no value, in function returning non-void
请问要怎麽消除警告呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.222.31.187
1F:推 suhorng:感觉像是你的function宣告成不是void的 08/19 10:38
2F:推 VictorTom:回传型态没写??那预设是int不是void喔.... 08/19 10:39
3F:→ ckai1983:喔 我是宣告void *xx() 08/19 10:49
4F:推 VictorTom:应该看成 void* xx(); 这样是预期回传一个 void* 也就是 08/19 10:50
5F:→ VictorTom:应该回传一个无型态指标才对, 而不是不回传东西.... 08/19 10:50
6F:→ VictorTom:题外话, 看到警告应该不是一味的想怎麽消除, 而是先查明 08/19 10:51
7F:→ VictorTom:原因, 修正不适当的code, 确定真是不必理会的才去关掉:) 08/19 10:52
8F:→ james732:同意楼上 会有警告应该代表你的code有某种程度的问题 08/19 10:53
9F:→ ckai1983:喔 我刚刚试return NULL; 应该OK吧... 08/19 10:57
10F:推 VictorTom:function是你写的吗?? 回传型态为 void* 代表这函数预期 08/19 10:59
11F:→ VictorTom:传回一个指标, 而呼叫者(可能)预期接到一个指标; 如果程 08/19 11:00
12F:→ VictorTom:式机制不需要回传, 你应该是把void*修正为void, 如果应 08/19 11:00
13F:→ VictorTom:该回传, 你自己要搞清楚传NULL回去会发生啥事正不正确. 08/19 11:01
14F:→ ckai1983:那个function是要给pthread_create用的 08/19 11:09
15F:→ ckai1983:我是参考前人的写法-.- 没有仔细研究......囧 08/19 11:10
16F:推 VictorTom:那麽你可以就NULL, 然後祈导这样子一切就正常或者这段 08/19 11:19
17F:→ VictorTom:return别走到; 再不然就是仔细研究code研究document或者 08/19 11:20
18F:→ VictorTom:找前人问清楚它的用法; 折衷方案就是加个assert与注解 08/19 11:20
19F:→ VictorTom:然後把问题留给後人或未来的自己. Well~~这些已经跟 08/19 11:21
20F:→ VictorTom:coding比较无关了, 而是遇到这种问题您要如何处理了:) 08/19 11:21
21F:推 gozha:return rand(); (误) 08/19 11:22
22F:推 james732:推楼上 XDDDD 不过既然是 pthread 用的,return NULL应ok 08/19 11:28