看板 C_and_CPP 關於我們 聯絡資訊
大家好 在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://www.ptt.cc/bbs/C_and_CPP/M.1450018970.A.55A.html
OPIV: 是以前 pascal 時代的理論吧 12/13 23:11
OPIV: if(...) flag = 1 else flag = -1; return flag 12/13 23:12
OPIV: if(...) return 1 else return -1; 12/13 23:13
OPIV: 他們覺得第一種比較好… 12/13 23:14
qeagle: 原來如此,要把RETURN值寫成變數就是了,謝謝 12/14 07:05
Caesar08: http://goo.gl/XQN7T7的Non-issue: Multiple returns. 12/14 10:43
Caesar08: Herb Sutter提出他對single-entry/single-exit的見解, 12/14 10:44
Caesar08: SE/SE is an obsolete idea and has always been wrong. 12/14 10:45
uranusjr: 如果寫非常嚴格的 old-style C 那麼 single exit 可能有 12/14 17:09
uranusjr: 好處, 因為常常需要 cleanup, 退出點太多容易出 bug 12/14 17:10
uranusjr: 只有在 C++ 裡可以說這是 non-issue (因為有 RAII 模式) 12/14 17:11
uranusjr: 當然在 C 裡通常還是可以包成 function 來解 12/14 17:13