—————————
n年前,軟體開發的一代宗師——迪傑斯特拉(dijkstra)說過:「goto statment is harmful !!」,並建議取消goto語句。因為goto語句不利於程式**的維護性。
這裡我也強烈建議不要使用goto語句,除非下面的這種情況:
#define free(p) if(p)
main()
lname = ( char* ) calloc ( 20, sizeof(char) );
if ( lname == null )
mname = ( char* ) calloc ( 20, sizeof(char) );
if ( mname == null )
......
errhandle:
free(fname);
free(lname);
free(mname);
reporterror(err_no_memoey);
}也只有在這種情況下,goto語句會讓你的程式更易讀,更容易維護。(在用嵌c來對資料庫設定游標操作時,或是對資料庫建立鏈結時,也會遇到這種結構)
goto 語句的使用
goto語句包括兩個部分 goto和乙個標籤名稱。標籤的命名遵循與命名變數相同的約定。goto part1 標籤需要寫上工作的語句。part1 printf there is part1 n 觀察以下程式的執行結果 可以看到,當執行 goto 語句之後,程式就跳轉到part1 printf ther...
goto語句的使用
goto語句使用一定要在判斷中進行操作,如果再順序語句中,隨意的進行跳轉,那麼程式會具備極大的不確定性,比如前面定義了乙個變數,後面值已經改變了,然後goto又跳轉到定義處,那麼這個變數是定義的值還是後面改變的值?量大,這就不好控制了,所以一定要約束goto語句。include include in...
關於goto語句的使用
在專案中用到了大量的goto語句,遭到了領導的指責,感覺挺委屈的。作為乙個程式設計師,在很多地方都看到說要避免goto語句的使用。goto語句如洪水猛獸,其實都誤解了goto。濫用goto的確很恐怖,可是合理使用卻能夠對程式的結構效能有很大幫助。以下簡單說一下專案中用到goto的3類地方。1,多重迴...