[問卦] 所以寫程式用goto到底是好還是不好?

看板Gossiping作者 (nckuff)時間7月前 (2023/10/04 15:42), 編輯推噓71(73289)
留言164則, 92人參與, 7月前最新討論串1/2 (看更多)
安安 台嘎豪R 我肥宅 肥宅正在看公司軟體的原始碼啦 為了做例外處理跟區分使用模式 用了一堆goto= = 肥宅半路出家的,第一次看到用goto的程式碼 而且人家goto是用在迴圈裏面 導致goto到的程式碼就像閹割版一樣 明明前面沒有迴圈 後面卻多加了好幾個 } 看的肥宅頭好痛= = 之前聽課就知道goto會寫出義大利麵, 但之前看jserv某一堂課又說 C用到goto是在所難免,用goto做例外處理是常見的作法。 但公司軟體不是goto之後直接exit(1)程式就結束了RR 略過當前處理後 後面還要繼續下一個處理 喔 我快不行惹 看的頭好痛 有沒有C語言大師可以開示一下 到底該不該用GOTO阿= = U MI U 7+1卦? SOS 想下班了喇 555555555 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.87.218.168 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1696405337.A.2AA.html

10/04 15:43, 7月前 , 1F
i go to school by bus. thank you
10/04 15:43, 1F

10/04 15:44, 7月前 , 2F
goto就跟大便一樣 人該不該大便?
10/04 15:44, 2F

10/04 15:44, 7月前 , 3F
寫組語膩
10/04 15:44, 3F

10/04 15:44, 7月前 , 4F
我也想下班 刷一整天PTT好累
10/04 15:44, 4F

10/04 15:44, 7月前 , 5F
最後跑得起來就好了吧 誰管你怎麼寫
10/04 15:44, 5F

10/04 15:44, 7月前 , 6F
好的 GOTO
10/04 15:44, 6F

10/04 15:44, 7月前 , 7F
幸好我都用 system(" PTT ");
10/04 15:44, 7F

10/04 15:44, 7月前 , 8F
會讓你下禮拜看不懂的寫法就不應該
10/04 15:44, 8F

10/04 15:44, 7月前 , 9F
最後翻譯成assembly 一樣是一堆jmp 啊
10/04 15:44, 9F

10/04 15:44, 7月前 , 10F
工作就是工作
10/04 15:44, 10F

10/04 15:45, 7月前 , 11F
用了40年還是 If then else最好用
10/04 15:45, 11F

10/04 15:45, 7月前 , 12F
新手避免用
10/04 15:45, 12F

10/04 15:45, 7月前 , 13F
看其他同事怎麼寫就怎麼寫
10/04 15:45, 13F

10/04 15:45, 7月前 , 14F
一堆人亂寫一通後很難維護 然後就離職了
10/04 15:45, 14F

10/04 15:46, 7月前 , 15F
goto只用在跳到function後面,統一做回傳處理
10/04 15:46, 15F

10/04 15:46, 7月前 , 16F
誰接手誰倒楣
10/04 15:46, 16F

10/04 15:46, 7月前 , 17F
你要會用,而不是亂用阿
10/04 15:46, 17F

10/04 15:47, 7月前 , 18F
用 用好用滿 這樣 你寫的東西不可取代
10/04 15:47, 18F

10/04 15:47, 7月前 , 19F
簡單粗暴幹嘛不用==
10/04 15:47, 19F

10/04 15:47, 7月前 , 20F
管他能不能用,把程式改到只有你看得懂才
10/04 15:47, 20F

10/04 15:48, 7月前 , 21F
PM:為什麼這段會卡住,想辦法解決
10/04 15:48, 21F

10/04 15:48, 7月前 , 22F
如果老闆看你不爽 也不敢對你不禮貌
10/04 15:48, 22F

10/04 15:48, 7月前 , 23F
由是就有了GoTo
10/04 15:48, 23F

10/04 15:48, 7月前 , 24F
才重要,才能彰顯你的價值。
10/04 15:48, 24F

10/04 15:48, 7月前 , 25F
等下你不領薪憑空消失 整間公司打掉重來
10/04 15:48, 25F

10/04 15:48, 7月前 , 26F
goto exit
10/04 15:48, 26F

10/04 15:49, 7月前 , 27F
goto拿來break多層loop很爽
10/04 15:49, 27F

10/04 15:49, 7月前 , 28F
沒經驗就不要用了 會讓你寫出爛程式
10/04 15:49, 28F

10/04 15:50, 7月前 , 29F
有經驗之後 用好用滿 理由很明顯
10/04 15:50, 29F

10/04 15:50, 7月前 , 30F
python 沒 goto 真的累
10/04 15:50, 30F

10/04 15:50, 7月前 , 31F
我不太用耶
10/04 15:50, 31F

10/04 15:51, 7月前 , 32F
Break比較常用
10/04 15:51, 32F

10/04 15:52, 7月前 , 33F
是說 能夠寫出一段需要GOTO才能破繭而出
10/04 15:52, 33F

10/04 15:52, 7月前 , 34F
這原先的寫法就很值得討論了 錯不在goto
10/04 15:52, 34F

10/04 15:55, 7月前 , 35F
爽用就用,負責維護的人,你家的事
10/04 15:55, 35F

10/04 15:55, 7月前 , 36F
組語裡面一堆goto啊
10/04 15:55, 36F

10/04 15:56, 7月前 , 37F
只要別人看得懂你在寫什麼就好
10/04 15:56, 37F

10/04 15:56, 7月前 , 38F
盡量不要 會坑到後面維護的人
10/04 15:56, 38F

10/04 15:56, 7月前 , 39F
不是喔,是要想辦法讓別人看不懂在寫什麼。
10/04 15:56, 39F
還有 85 則推文
10/04 18:30, 7月前 , 125F
通常一看到goto就說爛的 通常自己也
10/04 18:30, 125F

10/04 18:30, 7月前 , 126F
很...
10/04 18:30, 126F

10/04 18:30, 7月前 , 127F
kernel driver才會好用辣
10/04 18:30, 127F

10/04 18:32, 7月前 , 128F
理論上不會一天到晚在跳多層迴圈才
10/04 18:32, 128F

10/04 18:32, 7月前 , 129F
10/04 18:32, 129F

10/04 18:33, 7月前 , 130F
例外處理 方向往下 不過函式該拆要拆 上
10/04 18:33, 130F

10/04 18:33, 7月前 , 131F
百行的函式一大堆資源宣告goto也難救
10/04 18:33, 131F

10/04 18:51, 7月前 , 132F
以前程式設計教授禁止我們使用
10/04 18:51, 132F

10/04 19:08, 7月前 , 133F
智障才用goto
10/04 19:08, 133F

10/04 19:35, 7月前 , 134F
1968 年有人討論過了,goto有害論
10/04 19:35, 134F

10/04 20:08, 7月前 , 135F
C用goto處理例外正常 不要懷疑
10/04 20:08, 135F

10/04 20:16, 7月前 , 136F
結論是沒有一定
10/04 20:16, 136F

10/04 20:17, 7月前 , 137F
單一出口釋放資源好好用。不然要寫一
10/04 20:17, 137F

10/04 20:17, 7月前 , 138F
堆 if 來判斷 NULL 嗎?
10/04 20:17, 138F

10/04 20:18, 7月前 , 139F
linux kernel裡面也一堆goto 不會正確用的
10/04 20:18, 139F

10/04 20:18, 7月前 , 140F
人才在那邊叫人不要用 笑死
10/04 20:18, 140F

10/04 20:18, 7月前 , 141F
不能用的話還會有這語法?
10/04 20:18, 141F

10/04 20:19, 7月前 , 142F
會用的就用,別理那些不敢用的廢話
10/04 20:19, 142F

10/04 20:21, 7月前 , 143F
while (0) { break; } 是替代寫法,不
10/04 20:21, 143F

10/04 20:21, 7月前 , 144F
過好逼雞。
10/04 20:21, 144F

10/04 20:24, 7月前 , 145F
樓上WIKI的GOTO示範code真的跟自障一樣
10/04 20:24, 145F

10/04 20:28, 7月前 , 146F

10/04 20:28, 7月前 , 147F
rol-flow
10/04 20:28, 147F

10/04 20:29, 7月前 , 148F
等你要看的時候就知道了
10/04 20:29, 148F

10/04 21:20, 7月前 , 149F
zero大是想說do{/* Do something*/ bre
10/04 21:20, 149F

10/04 21:20, 7月前 , 150F
ak;}while(0); 嗎
10/04 21:20, 150F

10/04 21:23, 7月前 , 151F
對,一時忘了逼雞語法。哈。
10/04 21:23, 151F

10/04 21:54, 7月前 , 152F
我會用 goto 同事建議包迴圈用 cont
10/04 21:54, 152F

10/04 21:54, 7月前 , 153F
inue 跳到
10/04 21:54, 153F

10/04 21:56, 7月前 , 154F
不過我寫 goto 主要是程式碼扁平化
10/04 21:56, 154F

10/04 21:56, 7月前 , 155F
而且我的 goto 起迄位置一定在同一
10/04 21:56, 155F

10/04 21:56, 7月前 , 156F
10/04 21:56, 156F

10/04 21:57, 7月前 , 157F
哈你可以看看現代程式語言為什麼都沒go
10/04 21:57, 157F

10/04 21:57, 7月前 , 158F
to就是智障也可以學程式
10/04 21:57, 158F

10/05 09:08, 7月前 , 159F
就效能考量和狀態流 還有其它用途
10/05 09:08, 159F

10/05 09:10, 7月前 , 160F
很可惜在shell中只有csh這種爛東西支
10/05 09:10, 160F

10/05 09:10, 7月前 , 161F
持 雖然可以模擬
10/05 09:10, 161F

10/05 11:42, 7月前 , 162F
一堆公司都用GOTO當錯誤回傳阿
10/05 11:42, 162F

10/05 11:42, 7月前 , 163F
說不配的是不是CODE看太少
10/05 11:42, 163F

10/05 16:38, 7月前 , 164F
10/05 16:38, 164F
文章代碼(AID): #1b7HTPAg (Gossiping)
文章代碼(AID): #1b7HTPAg (Gossiping)