goto 和 co routine有什麼區別?

時間 2021-05-30 17:52:00

1樓:錢念峰

c語言goto只能跳到同函式的標籤吧,longjmp倒是可以,不過跳轉後區域性變數的值是否會恢復呢?棧上的值會恢復,暫存器中的值是否恢復未定義。

2樓:東方孤思子

這個問題問得有問題。

goto是一種語言機制,協程(coroutine)是一種執行時的一種能力。

怎麼會是一回事呢?

goto無非是跳轉,目的是靈活地調整程式執行的順序;

協程的目的是為了併發,是讓程式同時做很多事。

goto 被批是因為不安全,可讀性差,跟協程沒關係。

協程被捧是因為他相對程序和執行緒更輕量化,跟 goto 也沒關係。

continue 又是什麼鬼啊?誰會捧 continue 啊?你們捧 public void main() 麼?23333

3樓:Kent Zhang

Continue:中止當次迴圈,開始下一次迴圈。

Goto:跳到指定的位置去(VB裡的常見的用法是onerror goto LB, LB是定義用來處理異常的標籤,異常處理程式碼放在這個標籤後面),物件導向語言不會有這種寫法。

--------update-------不好意思,是我大意看錯了,還以為是continue, 題主問的是coroutine,這個我在工作中沒用過呀?沒辦法回覆,大家直接無視我的回答即可。

4樓:封禁讓我戒乎

最好說明語言(c/c#/go/lua),不同語言的實現、執行機制可能不一定完全一樣。

另外,continue和coroutine也不是一回事啊goto是任意跳轉,導致程式結構與執行過程完全脫節continue是跳轉到固定位置,雖然也跳轉了,但有乙個好處:方便地提前結束一次迴圈

coroutine在執行機制上是與前2者完全不同,前2者是乙個執行流程裡的跳轉,coroutine則是使用者(程式)自行排程實現多流程的一種方式(不用多執行緒,核心開銷低,但需要自行儲存上下文資訊)

和 有哪些區別?

周道仁 可以看看我剛出爐的如何掌握和區分周道仁的文章 知乎 https zhuanlan p 14 1183436 教日語的小慌先生 直接上結論 空間概念 飛了過來 vs 飛了過去 原義 根本用法 時間概念 發展而來 vs 發展下去 引申義 程度概念 熱了起來 vs 冷卻下去 引申義 遠處 飛 來 ...

replicate 和 duplicate 有什麼不同

eric 這種看英文解析很好理解 基本是完全不一樣的意思 duplicate verb make exact copy of something adjective made as exact copy of something noun exact copy of something replic...

DD WRT, Tomato 和 OpenWRT 有什麼區別和聯絡?哪乙個更好?

佐須之男 目前我已經將Tomato移植到openwrt上去了,具體可以看特大新聞 Tomato Phoenix 不死鳥系統成功移植到OpenWRT。 Li Joe 只用openwrt較多。就openwrt系統而言,其本質就是乙個linux作業系統。你的路由器就是乙個小型電腦,帶有儲存flash.刷機...