8.19 被誤解的關鍵字:goto
8.19 被誤解的關鍵字:goto
goto的歷史爭議
劣勢
無限制使用goto,特別是往回跳,使程式結構複雜
任何程式都可使用順序、分支、迴圈三種結構表示出來
優勢
函式內的出錯出口的統一處理、指定唯一出口
當多層巢狀時,比break、return更有優勢
既能提高效率,也不會破壞程式良好的結構
哪些地方建議使用goto?
- 函式出錯時的處理
函式內部模組化設計:將函式主邏輯程式碼和出錯處理部分隔離,
結構更加清晰
程式碼複用:將一個函式多個出口歸併為一個總出口
資源統一處理:記憶體釋放、鎖、控制程式碼…
使用注意的一些地方
不要往回跳、只能往前跳
使用goto只能在同一函式內跳轉
goto標籤一般在兩段不同邏輯功能程式碼的交界處
不能大量使用
相關文章
- break、continue與goto關鍵字Go
- 被遺忘的Java關鍵字:transientJava
- DM 關鍵字、遮蔽關鍵字
- 深入瞭解 Java 的 volatile 關鍵字Java
- out關鍵字和ref關鍵字的區別
- let關鍵字和const關鍵字
- final關鍵字和static關鍵字
- 萬字乾貨|Synchronized關鍵字詳解synchronized
- C++ typeid關鍵字詳解C++
- 關鍵字
- this關鍵字
- Maven optional關鍵字透徹圖解Maven圖解
- c# yield關鍵字原理詳解C#
- C語言中static關鍵字詳解C語言
- synchronized關鍵字的原理synchronized
- static關鍵字的作用
- Java 的 static 關鍵字Java
- this的HXD“super”關鍵字
- abstract關鍵字 super 關鍵字 類與繼承繼承
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- volatile 關鍵字
- @Transient關鍵字
- friend關鍵字
- Auto關鍵字
- Swift 關鍵字Swift
- defer關鍵字
- typedef關鍵字
- params關鍵字
- dynamic關鍵字
- 4關鍵字
- [JavaScript] this 關鍵字JavaScript
- Volatile關鍵字
- static關鍵字
- super關鍵字
- final關鍵字
- synchronized 關鍵字synchronized
- const關鍵字
- Voliate關鍵字