C语言goto关键字—尽量少用
生活随笔
收集整理的這篇文章主要介紹了
C语言goto关键字—尽量少用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般來說,編碼的水平與goto 語句使用的次數成反比。有的人主張慎用但不禁用goto語句,但我主張禁用。關于goto 語句的更多討論可以參看Steve McConnell 的名著《CodeComplete. Second Edition》。
禁用goto 語句。自從提倡結構化設計以來,goto 就成了有爭議的語句。首先,由于goto 語句可以靈活跳轉,如果不加限制,它的確會破壞結構化設計風格;其次,goto 語句經常帶來錯誤或隱患。它可能跳過了變量的初始化、重要的計算等語句,例如:
? ?struct student *p = NULL;
? ?…
? ?goto state;
? ?p = (struct student *)malloc(…); //被goto 跳過,沒有初始化
? ?…
? ?state:
? ?//使用p 指向的內存里的值的代碼
? ?…
如果編譯器不能發覺此類錯誤,每用一次goto 語句都可能留下隱患。
禁用goto 語句。自從提倡結構化設計以來,goto 就成了有爭議的語句。首先,由于goto 語句可以靈活跳轉,如果不加限制,它的確會破壞結構化設計風格;其次,goto 語句經常帶來錯誤或隱患。它可能跳過了變量的初始化、重要的計算等語句,例如:
? ?struct student *p = NULL;
? ?…
? ?goto state;
? ?p = (struct student *)malloc(…); //被goto 跳過,沒有初始化
? ?…
? ?state:
? ?//使用p 指向的內存里的值的代碼
? ?…
如果編譯器不能發覺此類錯誤,每用一次goto 語句都可能留下隱患。
總結
以上是生活随笔為你收集整理的C语言goto关键字—尽量少用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米小钢炮等常用蓝牙设备(音箱/键盘/打
- 下一篇: 基于三值图像的车牌识别测试程序发布