• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小明思考

            高性能服務(wù)器端計(jì)算
            posts - 70, comments - 428, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            Is it a vc6 bug?

            Posted on 2006-04-24 18:08 小明 閱讀(2016) 評(píng)論(21)  編輯 收藏 引用 所屬分類(lèi): C/C++
            #include? < stdio.h >

            int ?main()
            {
            ????
            int ?a = 10 ,b = 20 ;

            ????a
            = (a + b) - (b = a);

            ????printf(
            " a=%d,b=%d\n " ,a,b);
            ????
            ????
            return ? 0 ;
            }

            很簡(jiǎn)單,交換a和b的值

            在debug模式下,輸出
            a=20,b=10

            在release模式下,輸出
            a=10,b=10

            I think there is a bug in release version.

            Feedback

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-24 19:46 by <font color="#FF00FF" >Stone Jiang
            代碼干嗎非要這樣寫(xiě)呢?

            a = a + b;
            b = a - b;
            a = a - b;

            易理解也不出錯(cuò).

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-24 20:46 by 小魚(yú)兒
            果然是,不過(guò)在VC7下測(cè)試都是10 10

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-24 21:53 by youf
            gcc下測(cè)試通過(guò),正確.

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 08:58 by 沐楓
            這個(gè)語(yǔ)句,無(wú)論如何都不能說(shuō)是編譯器的bug。
            根據(jù)編譯器實(shí)現(xiàn)的不同,可以有不同的結(jié)果。

            特別是優(yōu)化過(guò)以后,有可能先執(zhí)行 b=a,再執(zhí)行 (a+b)-b。這是最優(yōu)化的。
            當(dāng)然也可能是先執(zhí)行(a+b),再執(zhí)行 (b=a),再執(zhí)行 (a+b)-b。

            規(guī)則:在同一條語(yǔ)句中不要讓發(fā)生改變的變量出現(xiàn)多次。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 09:07 by saga.constantine
            好貼啊!!!小程序中的大問(wèn)題
            望高手出來(lái)解惑!!!!

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 09:13 by decwang
            不算是BUG,難道說(shuō)是我們程序?qū)戝e(cuò)了嗎?編譯器優(yōu)化應(yīng)該是以正確的結(jié)果為前提的

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 10:00 by Ninputer
            C++標(biāo)準(zhǔn)沒(méi)有規(guī)定&&,||和,三個(gè)元算符以外的運(yùn)算符左右誰(shuí)先運(yùn)行。所以你不能說(shuō)這個(gè)是錯(cuò)的。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 10:56 by 小明
            算術(shù)操作符是左結(jié)合的表達(dá)式
            ival + jval + kval + lval // 左結(jié)合的
            先把ival 和jval 相加然后冉加上kval 最后加上lval

            另外一方面賦值=操作的優(yōu)先級(jí)也低于+的優(yōu)先級(jí)

            所以我覺(jué)得這里vc6的release優(yōu)化有問(wèn)題

            通過(guò)查看release的匯編代碼,你會(huì)發(fā)現(xiàn)vc6直接在編譯期計(jì)算好值

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-25 23:01 by CoderDream
            考慮編譯器的無(wú)關(guān)性,盡量不要寫(xiě)產(chǎn)生不同結(jié)果的代碼!

            象二樓寫(xiě)就很好了!

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-26 09:56 by 小明
            樓上的注意,我在這里不是要討論如何寫(xiě)出明確的代碼

            而是討論,對(duì)于這種式子,按照C++標(biāo)準(zhǔn)應(yīng)該產(chǎn)生什么結(jié)果。編譯器可能會(huì)沒(méi)有遵守標(biāo)準(zhǔn)。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-26 10:00 by 小明
            @Ninputer
            你說(shuō):"C++標(biāo)準(zhǔn)沒(méi)有規(guī)定&&,||和,三個(gè)元算符以外的運(yùn)算符左右誰(shuí)先運(yùn)行。所以你不能說(shuō)這個(gè)是錯(cuò)的。"

            / *的優(yōu)先級(jí)就比+-優(yōu)先級(jí)高。不知道你從哪里看到的

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-04-26 17:45 by Martin Ding
            是啊,不能說(shuō)是錯(cuò)誤的,只是結(jié)果跟你期望的結(jié)果不一致而已。

            這樣的式子看了C++標(biāo)準(zhǔn)也不會(huì)知道結(jié)果如何的。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-05-01 12:59 by wmuu
            不是bug,c的標(biāo)準(zhǔn)沒(méi)有強(qiáng)制指定順序。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-05-26 16:04 by chenjm
            c++或c的標(biāo)準(zhǔn)中都沒(méi)有指定表達(dá)式的計(jì)算順序,因此,不應(yīng)該寫(xiě)計(jì)算結(jié)果依賴與具體計(jì)算順序的表達(dá)式.

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-05-31 09:15 by Neo
            C++標(biāo)準(zhǔn)沒(méi)有規(guī)定的,不要人為的臆想一個(gè)定則。

            請(qǐng)按照C++標(biāo)準(zhǔn)寫(xiě)規(guī)范的程序

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-06-17 00:23 by beyonlin
            @&lt;font color=&quot;#FF00FF&quot; &gt;Stone Jiang
            支持,寫(xiě)這樣的代碼沒(méi)什么意義,也難理解。

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2006-08-31 13:16 by 子彈
            是不是 "未定義行為" 啊

            # re: Is it a vc6 bug?  回復(fù)  更多評(píng)論   

            2008-11-17 14:22 by 不懂
            典型的學(xué)蟲(chóng),被老師教傻了的

            # unjojpsv  回復(fù)  更多評(píng)論   

            2009-08-04 00:12 by unjojpsv
            [URL=http://deitbvdg.com]dewjparo[/URL] edkehzuc http://mprnefyb.com qzoodjpy zarfsetu <a href="http://ydgukpni.com">uvmjsvig</a>

            # kxjavkaq  回復(fù)  更多評(píng)論   

            2009-08-06 07:52 by kxjavkaq
            zhzinjlf http://osivsabf.com pcluimth qvbakdep [URL=http://anxqffll.com]tpxpnuxs[/URL] <a href="http://lbgvpiss.com">kxkzsdxc</a>

            # tyuhfkux  回復(fù)  更多評(píng)論   

            2009-08-13 10:03 by tyuhfkux
            <a href="http://cobqihsu.com">eqbfjkjr</a> pcjluoro http://isuhuoga.com xkdqqxdj tgnexudi [URL=http://xupfgnuu.com]cejyrvts[/URL]
            久久婷婷五月综合色奶水99啪| 精品久久久久久久久中文字幕| 色欲久久久天天天综合网精品 | 久久久久久狠狠丁香| 久久精品国产亚洲AV香蕉| 人妻无码久久精品| 精品久久久久久无码国产| 99久久夜色精品国产网站| 粉嫩小泬无遮挡久久久久久| 亚洲女久久久噜噜噜熟女| 18岁日韩内射颜射午夜久久成人| 香蕉99久久国产综合精品宅男自 | 久久99国产精品久久99| 久久久久高潮毛片免费全部播放| 色偷偷88888欧美精品久久久 | 日韩精品久久无码人妻中文字幕| 色综合久久久久无码专区| 精品久久8x国产免费观看| 精品久久久久久久| 欧美激情精品久久久久久久| 要久久爱在线免费观看| 久久精品国产AV一区二区三区| 亚洲va久久久噜噜噜久久| 精品久久无码中文字幕| 国产2021久久精品| 久久综合久久综合亚洲| 无码人妻精品一区二区三区久久久 | 国产V亚洲V天堂无码久久久| 99久久精品九九亚洲精品| 久久久久亚洲AV无码专区桃色| 久久久久久曰本AV免费免费| 人妻精品久久无码专区精东影业 | 久久久无码一区二区三区| 久久r热这里有精品视频| 午夜精品久久久久久久无码| 精品国产一区二区三区久久久狼 | 久久久久久久精品成人热色戒| 国产V亚洲V天堂无码久久久 | 一本综合久久国产二区| 久久成人影院精品777| 久久99热这里只频精品6|