作者qeagle ()
看板C_and_CPP
标题[问题] 问一个MISRA-C RULE的解释
时间Sun Dec 13 23:02:48 2015
大家好
在MISRA的RULE14.7中提到
A function shall have a single point of exit at the end of the
function.
请问这是指在函式中只能有一个RETURN吗?
不太能理解,因为我会RETURN 1 和RETURN -1
所谓的单一离开点倒底是指什麽?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.65.122
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1450018970.A.55A.html
1F:推 OPIV: 是以前 pascal 时代的理论吧 12/13 23:11
2F:→ OPIV: if(...) flag = 1 else flag = -1; return flag 12/13 23:12
3F:→ OPIV: if(...) return 1 else return -1; 12/13 23:13
4F:→ OPIV: 他们觉得第一种比较好… 12/13 23:14
5F:→ qeagle: 原来如此,要把RETURN值写成变数就是了,谢谢 12/14 07:05
7F:→ Caesar08: Herb Sutter提出他对single-entry/single-exit的见解, 12/14 10:44
8F:→ Caesar08: SE/SE is an obsolete idea and has always been wrong. 12/14 10:45
9F:→ uranusjr: 如果写非常严格的 old-style C 那麽 single exit 可能有 12/14 17:09
10F:→ uranusjr: 好处, 因为常常需要 cleanup, 退出点太多容易出 bug 12/14 17:10
11F:→ uranusjr: 只有在 C++ 里可以说这是 non-issue (因为有 RAII 模式) 12/14 17:11
12F:→ uranusjr: 当然在 C 里通常还是可以包成 function 来解 12/14 17:13