第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C或C+中的Gotos示例

C或C+中的Gotos示例

C++ C
狐的傳說 2019-07-22 10:39:38
C或C+中的Gotos示例在這個(gè)線程中,我們將查看使用goto在C或C+中。它的靈感來自回答人們投票贊成是因?yàn)樗麄冋J(rèn)為我在開玩笑。摘要(標(biāo)簽從原版改為使意圖更加清晰):infinite_loop:     // code goes heregoto infinite_loop;為什么它比其他選擇更好:很具體。goto是導(dǎo)致無條件分支的語言結(jié)構(gòu)??蛇x方案取決于使用支持條件分支的結(jié)構(gòu),其條件總是退化的。標(biāo)簽記錄了意圖,沒有額外的注釋。讀者不必提前掃描中間的代碼breakS(盡管無原則的黑客仍然有可能模擬continue早早goto).規(guī)則:假裝守望者沒有贏。據(jù)了解,以上這些不能在實(shí)際代碼中使用,因?yàn)樗c已建立的成語背道而馳。假設(shè)我們都聽說過‘Goto認(rèn)為有害’,并知道Goto可以用來編寫意大利面代碼。如果你不同意一個(gè)例子,那么僅僅根據(jù)技術(shù)上的優(yōu)點(diǎn)來批評(píng)它(因?yàn)槿藗儾幌矚gGoto)并不是一個(gè)技術(shù)原因??纯次覀兡懿荒芟翊笕艘粯诱?wù)撨@件事。編輯這個(gè)問題似乎已經(jīng)解決了。它產(chǎn)生了一些高質(zhì)量的答案。感謝大家,尤其是那些認(rèn)真對(duì)待我的小循環(huán)榜樣的人。大多數(shù)懷疑論者都擔(dān)心缺乏封閉的范圍。正如@Quenmars在評(píng)論中指出的那樣,您始終可以在循環(huán)體周圍放置大括號(hào)。我順便注意到for(;;)和while(true)也不要給你免費(fèi)的支撐(而忽略它們可能會(huì)導(dǎo)致令人煩惱的錯(cuò)誤)。不管怎么說,我不會(huì)再把你的腦力浪費(fèi)在這件小事上了-我可以忍受那些無害的、習(xí)以為常的人。for(;;)和while(true)(如果我想保住我的工作,那也很好)??紤]到其他的反應(yīng),我看到很多人認(rèn)為goto你總是要用另一種方式重寫。當(dāng)然,你可以避免goto通過引入一個(gè)循環(huán),一個(gè)額外的標(biāo)志,一個(gè)嵌套的堆棧ifS,什么的,但為什么不考慮一下goto也許是這份工作最好的工具?換句話說,人們?yōu)榱吮苊馐褂脙?nèi)置的語言功能來達(dá)到預(yù)期的目的,準(zhǔn)備忍受多少丑陋?我的看法是,即使是添加國(guó)旗也要付出高昂的代價(jià)。我喜歡我的變量來表示問題或解決方案領(lǐng)域中的事物。為了避免goto“不會(huì)割傷的。我將接受第一個(gè)答案,它給出了分支到清理塊的C模式。國(guó)際海事組織,這是最有力的理由goto在所有張貼的答案,當(dāng)然,如果你衡量它的扭曲,一個(gè)仇人必須經(jīng)過,以避免它。
查看完整描述

3 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是我聽說過的人們使用的伎倆。不過我從沒在野外見過。而且它只適用于C,因?yàn)镃+有Raii來更具體地做這件事。

void foo(){
    if (!doA())
        goto exit;
    if (!doB())
        goto cleanupA;
    if (!doC())
        goto cleanupB;

    /* everything has succeeded */
    return;cleanupB:
    undoB();cleanupA:
    undoA();exit:
    return;}


查看完整回答
反對(duì) 回復(fù) 2019-07-22
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

C中對(duì)Goto的典型需求如下

for ...
  for ...
    if(breakout_condition) 
      goto final;final:

在沒有Goto的情況下,沒有簡(jiǎn)單的方法可以擺脫嵌套的循環(huán)。



查看完整回答
反對(duì) 回復(fù) 2019-07-22
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

下面是我的一個(gè)不傻的例子(來自StevensAPITUE),用于可能被信號(hào)中斷的Unix系統(tǒng)調(diào)用。

restart:
    if (system_call() == -1) {
        if (errno == EINTR) goto restart;

        // handle real errors
    }

另一種方法是退化循環(huán)。這個(gè)版本讀起來像英文,“如果系統(tǒng)調(diào)用被信號(hào)中斷,請(qǐng)重新啟動(dòng)它”。


查看完整回答
反對(duì) 回復(fù) 2019-07-22
  • 3 回答
  • 0 關(guān)注
  • 336 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)