[问题] 问一个MISRA-C RULE的解释

楼主: qeagle   2015-12-13 23:02:48
大家好
在MISRA的RULE14.7中提到
A function shall have a single point of exit at the end of the
function.
请问这是指在函式中只能有一个RETURN吗?
不太能理解,因为我会RETURN 1 和RETURN -1
所谓的单一离开点倒底是指什么?
作者: OPIV (Monitor)   2015-12-13 23:11:00
是以前 pascal 时代的理论吧if(...) flag = 1 else flag = -1; return flagif(...) return 1 else return -1;他们觉得第一种比较好…
楼主: qeagle   2015-12-14 07:05:00
原来如此,要把RETURN值写成变量就是了,谢谢
作者: Caesar08 (Caesar)   2015-12-14 10:43:00
http://goo.gl/XQN7T7的Non-issue: Multiple returns.Herb Sutter提出他对single-entry/single-exit的见解,SE/SE is an obsolete idea and has always been wrong.
作者: uranusjr (←這人是超級笨蛋)   2015-12-14 17:09:00
如果写非常严格的 old-style C 那么 single exit 可能有好处, 因为常常需要 cleanup, 退出点太多容易出 bug只有在 C++ 里可以说这是 non-issue (因为有 RAII 模式)当然在 C 里通常还是可以包成 function 来解

Links booklink

Contact Us: admin [ a t ] ucptt.com