c語言goto為什么最好不要用 C語言中的goto語句。為什么老師反復強調不能用?
C語言中的goto語句。為什么老師反復強調不能用?說到goto的顏色變化,主要原因是goto太自由了,甚至比匯編語言跳躍更自由。跳轉還需要考慮長地址、短地址等跳轉。Goto完全沒有限制。它可以直接從函
C語言中的goto語句。為什么老師反復強調不能用?
說到goto的顏色變化,主要原因是goto太自由了,甚至比匯編語言跳躍更自由。跳轉還需要考慮長地址、短地址等跳轉。Goto完全沒有限制。它可以直接從函數內部傳遞到函數外部,甚至傳遞到其他函數。這涉及到一個問題。我們都知道函數調用是為了保護當前的上下文,以及當前的執(zhí)行堆棧和寄存器。一旦它進入被調用函數的內部,堆棧和寄存器都將改變。如果在函數內部使用goto去其他地方而函數不返回,程序就會亂七八糟,導致內存泄漏。因此,必須限制goto的使用。1函數內部的goto只能轉到函數,以確保函數可以返回到被調用的。2中斷中的goto也是一樣的。Goto必須能夠保證中斷正常返回,否則也會導致中斷異常??傊唤ㄗh使用goto,因為它可以跳轉到您想要執(zhí)行的位置,而不受任何限制。它太自由了,但這是好事還是壞事,取決于程序開發(fā)人員的設計是否考慮周全,是否會導致這樣那樣的問題。
C語言中的GOTO語句怎么用?
1. Goto在C語言中也稱為無條件轉移語句,它可以使程序直接跳轉到任何標記。用法是“goto label:”。下面用一個例子來演示具體用法,這里首先創(chuàng)建一個C語言程序文件,演示使用visual studio軟件作為開發(fā)工具:3、編譯執(zhí)行程序,按crtl+F5打開命令行,可以看到執(zhí)行結果,打印出來B語句,與預期結果相同。以上是goto在C語言中的用法:
c語言中goto語句怎么使用?
goto語句在結構化編程中一般不提倡,以免造成程序流程的混亂,給程序的理解和調試帶來困難。Goto語句又稱無條件轉移語句,其一般格式如下:Goto語句標簽;語句標簽是根據標識符編寫的符號,放在某個句子行的前面,后跟冒號(:)。語句標簽用于標識語句,并與goto語句一起使用。C語言不限制程序中使用的標簽數量,但每個標簽都不應重命名。goto語句的語義是改變程序的流向,執(zhí)行由語句標簽標記的語句。Goto語句通常與條件語句一起使用。它可以實現條件轉移、形成循環(huán)、跳出循環(huán)體等功能。示例:S=0,I=1再次:s=sII=I 1If I
goto語句在C語言中不提倡,可以通過在循環(huán)中調用帶判斷的函數來實現。Goto很容易使用:main(){int a,B,C=0loop:scanf(%d%d,&A,&B)if(a>B)Goto loop1 else Goto loop1:C=B B,B=a,a=B printf(%a=%d,B=%dn,a,B)