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

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

C+中的編譯器和求值的參數(shù)順序

C+中的編譯器和求值的參數(shù)順序

C++
九州編程 2019-07-02 17:37:38
C+中的編譯器和求值的參數(shù)順序好的,我知道標(biāo)準(zhǔn)規(guī)定C+實(shí)現(xiàn)可以選擇計(jì)算函數(shù)的參數(shù)的順序,但是在實(shí)際會(huì)影響程序的場景中,是否有任何實(shí)現(xiàn)可以“利用”這一點(diǎn)呢?典型例子:int i = 0;foo(i++, i++);注意:我不是在找人告訴我,評(píng)估的順序是不能依賴的,我很清楚這一點(diǎn)。我只感興趣的是,是否有任何編譯器確實(shí)按照從左到右的順序進(jìn)行計(jì)算,因?yàn)槲业牟聹y是,如果他們做了大量編寫不當(dāng)?shù)拇a,就會(huì)崩潰(這是正確的,但他們可能仍會(huì)抱怨)。
查看完整描述

3 回答

?
夢里花落0921

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

它取決于參數(shù)類型、被調(diào)用函數(shù)的調(diào)用約定、結(jié)構(gòu)和編譯器。在x86上,帕斯卡調(diào)用約定計(jì)算從左到右的參數(shù),而在C調(diào)用約定中(_cdecl從右到左。大多數(shù)在多個(gè)平臺(tái)上運(yùn)行的程序都會(huì)考慮調(diào)用約定來跳過意外事件。

有一個(gè)很好的文章如果你有興趣的話,可以在雷蒙德·陳的博客上。您可能還想看看堆棧和調(diào)用GCC手冊(cè)一節(jié)。

編輯:只要我們分道揚(yáng)鑣:我的回答不是把這看作一個(gè)語言問題,而是一個(gè)平臺(tái)問題。該語言標(biāo)準(zhǔn)不支持或傾向于其中一種而不是另一種,而將其保留為未指定..注意措辭。它并沒有說這是沒有定義的。在這個(gè)意義上不明確意味著一些你不能指望的,不可移植的行為。我手頭沒有C規(guī)范/草案,但它應(yīng)該與我的n 2798草案(C+)相似

抽象機(jī)器的某些其他方面和操作在本國際標(biāo)準(zhǔn)中被描述為未指定(例如,函數(shù)的參數(shù)計(jì)算順序)。在可能的情況下,本國際標(biāo)準(zhǔn)定義了一組允許的行為。這些定義了抽象機(jī)器的非確定性方面。因此,對(duì)于給定程序和給定輸入,抽象機(jī)器的實(shí)例可以具有多個(gè)可能的執(zhí)行序列。


查看完整回答
反對(duì) 回復(fù) 2019-07-02
?
藍(lán)山帝景

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

我找到了答案C+標(biāo)準(zhǔn).

第5.2.2.8段:

參數(shù)的計(jì)算順序未指定。參數(shù)表達(dá)式計(jì)算的所有副作用在輸入函數(shù)之前生效。未指定后綴表達(dá)式和參數(shù)表達(dá)式列表的計(jì)算順序。

換句話說,它只依賴于編譯器。


查看完整回答
反對(duì) 回復(fù) 2019-07-02
?
慕少森

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

讀這個(gè)

這不是你的問題的確切副本,但我的回答(和其他幾個(gè))也涵蓋了你的問題。

有很好的優(yōu)化理由,為什么編譯器可能不只是選擇從右到左,但也交織它們。

標(biāo)準(zhǔn)甚至不能保證順序排序。它確保在調(diào)用該函數(shù)時(shí),所有參數(shù)都已完全評(píng)估。

是的,我見過一些版本的GCC就是這樣做的。對(duì)于您的示例,foo(0,0)將被調(diào)用,之后我將被調(diào)用2。(我不能給出編譯器的確切版本號(hào)。那是一段時(shí)間以前的事了-但我不會(huì)驚訝地看到這種行為再次出現(xiàn)。這是安排指令的有效方法)


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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