回文章列表
作者WalkingIce.bbs@ptt.cc (會走路的冰塊) 看板: linux
標題Re: 請問一個奇怪的程式碼...
時間批踢踢實業 (2008/03/08 Sat 02:59:51)
※ 引述《jserv.bbs@bbs.sayya.org (松鼠)》之銘言:
: 基本上,這與 compiler optimization 有密切關係。
: 先試著以 gcc-3.4 來編譯以下的 C 程式碼 (假設為 strange.c)
: 可以對照 "-O0" 與 "-O1" 的輸出分野,即可知曉為何如此了。
: 至於 gcc4,採用完全不同的 optimization policy,那就另當別論。

原來是 optimization 造成的差異
不過在這邊我有了一個疑問

optimization 不是在不影響行為的情況下去對程式做修改嗎?
就如同乘以 2 不如用 shift
程式最後的結果一直都是相同的

在這段 code 下會因為 optimization 的 order 不同而產生迥異的結果

是因為 gcc 的設計本該如此
或是因為程式碼本身有問題,使得 gcc 做出不正確的 optimization ?

--


        我想你會衰成這樣都是我害的
                                        ---- Tizzy Mac

                                                緊張的麥金塔?這是誰(._.?)

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 59.104.231.26
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻