Re: [問題] 請問non-void函數return哪一種寫法比較好?
※ 引述《Zcode (Zcode)》之銘言:
----- (1) -----
bool isLarger(int a, int b) {
if (a > b)
return true;
else
return false;
}
這寫法蠻多 compiler 會噴 warning , 遇到這情形我會故意在最後一行,
加一個無義的 return true; 去消 warning
----- (2) -----
bool isLarger(int a, int b) {
if (a > b)
return true;
return false
}
其實我比較常用這個。
----- (3) -----
然後蠻多網友說用 return (a>b); 一開始也習慣盡可能寫短 (短到有點噁心那種),
不過發現這樣不好 debug, 所以寧願多設一個變數做觀查。
bool isLarger(int a, int b) {
bool ret = (a>b) ; ///< 斷點下在這裡還可以觀查結果 , 直接 return 就沒了..
return ret;
}
----- (4) -----
另有時候會用一個 bool ret 當傳回值,
一律用 goto (有時候可以不用 goto 是沒錯) 再一起 return 回去。
遇到要處理記憶體的時候,還蠻建議最後再一起 return 回去。
bool func()
{
bool ret = true;
int * arr1 = NULL, *arr2 = NULL;
if (! (arr1 = malloc(...)) ) { ret = false ; goto func_end; }
if (! (arr2 = malloc(...)) ) { ret = false ; goto func_end; }
func_end:
if(arr1) free( (void*)arr1);
if(arr2) free( (void*)arr2);
return ret;
}
---------------
最後一種大概是最常見的吧,一堆 if-else if-else if...
中間確信結果或遇到問題的時候就直接 return 回去。
--
就算把新鮮的肝拿回去,還是一樣寫碼到禿頭,加班到天亮,
永遠當老闆的傀儡 你是不是想這麼做?
是的話你就拿回去~ 拿啊!!
九世宅男 : 下輩子不要再讓我幹工程師了 ~
< Kuso 星爺語錄 >
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 101.15.129.78
→
11/06 01:06, , 1F
11/06 01:06, 1F
→
11/06 01:18, , 2F
11/06 01:18, 2F
→
11/06 01:35, , 3F
11/06 01:35, 3F
→
11/06 01:36, , 4F
11/06 01:36, 4F
推
11/06 02:28, , 5F
11/06 02:28, 5F
→
11/06 02:29, , 6F
11/06 02:29, 6F
→
11/06 23:25, , 7F
11/06 23:25, 7F
→
11/07 04:49, , 8F
11/07 04:49, 8F
→
11/07 23:09, , 9F
11/07 23:09, 9F
→
11/07 23:10, , 10F
11/07 23:10, 10F
→
11/08 01:04, , 11F
11/08 01:04, 11F
推
11/12 13:14, , 12F
11/12 13:14, 12F
→
11/12 13:14, , 13F
11/12 13:14, 13F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):