c語言goto語句到底用還是不用?

時間 2021-05-30 00:35:12

1樓:登龍

如果是初學,先掌握 C 語言中基本的迴圈語法就行了,以後當你需要用到 goto 的時候,查閱相關部落格就可以了。

打基礎階段把重點放在主要的方面,一些相對用的不多的東西可以暫時忽略,等你能力上公升乙個階段再回頭學習它們會更加輕鬆的。

來自乙個自學程式設計的過來人。

2樓:囧囧

絕大多數情況下是不應該使用的。

不過有一種場景還是要用的,否則程式就成翔了。

舉個栗子。

某元件初始化需要多個步驟順序走一遍,全部成功才算成功,任何乙個步驟失敗都要按照倒過來的順序撤銷前面已經成功的步驟,並報告失敗。

為了簡化起見,假設只有三個步驟,分別叫做ABC。

用goto時這麼寫:

if(!A())

if(!B())

if(!C())

return TRUE;

Cfail:

undoB();

Bfail:

undoA();

Afail:

return FALSE;

這個套路能夠輕鬆處理步驟很多的初始化過程。

不用goto的話,很多大致一模一樣但還是有點不同的undo和return會分散在每個步驟的錯誤處理分支裡,難寫、難維護、易出錯。

3樓:謎團

int *a,*b,*c;

a=malloc(n)

if(a=null)

return;

b=malloc(n)

if(b=null)

goto loopb

c=malloc(n)

if(c=null)

goto loopc

loopc:

free(b)

loopb:

free(a)

return

4樓:CuKing

大部分情況是沒必要的,但在少數特定情況下goto也很方便。比如跳出多重迴圈,比如跳轉到函式結束(比如乙個函式可能有多個出口,然後因為要在結束之前進行同樣的乙個操作,每次都return前進行這個操作有點麻煩,乾脆不寫這個操作和return,直接跳到函式末尾再處理一下這個操作就好了)

總之還得具體情況具體分析,怎麼寫好就寫哪個,你要說用還是不用太絕對了。

掌握與否的話,我建議你先記住用法就好,沒必要過多研究,以後遇到了自然就明白該在什麼時候用。

5樓:「已登出」

goto語句在錯誤處理的時候經常用到,在程式設計中是可以使用的。

之所以很多程式設計規範不建議使用goto語句,是因為擔心goto語句被濫用,所以不建議使用。

C語言裡pthread到底該怎麼用呢?

醉臥沙場 Please,man pthread create PTHREAD CREATE 3Linux Programmer s ManualPTHREAD CREATE 3 NAME pthread create create a new thread SYNOPSIS include int ...

為什麼C語言用int a 來宣告指標變數,而不是int a宣告?

int a b 等同於 int a a b 也就是說 a型別是int,反推出a是指標 位址 a的值為b的位址。 Mandy 這是因為在型別描述和表示式中 的意義是不同的。型別描述中int 表示a的型別是整數的指標。而表示式中 是乙個運算子,表示對指標取值。 千景 int a 有兩種解釋 1.int ...

c語言裡的char大小到底是4還是1?

to store any member of the basicexecution character set.If a member of the basic execution character set is stored in a char object,its value is guara...