看板 ask-why 關於我們 聯絡資訊
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.48.9
slzhao:對"程式設計師偷懶"有點不同的見解.在早期的CPU,累加的執行 01/16 08:07
slzhao:速度跟直接加一個數值是不同的,這樣寫可明確告訴CPU用累加 01/16 08:08
slzhao:而非用一般的加法,對程式最佳化有幫助. 01/16 08:09
andrew43:推本文作者與一樓 01/16 08:16
littleshan:寫 i=i+1 也可以 optimize 啊...compiler 沒那麼笨 01/16 09:19
H45:因為低階語言的ADD指令和INC指令的效能是有差的 01/16 10:15
H45:另外在Z Spec中,i++是否可以表示成i'=i+1? 01/16 10:16
littleshan:add 和 inc 不一定有差 要看 architecture 01/16 11:43
H45:同一個architecture會有相同的instruction set吧? 01/16 14:10
H45:也許樓上上指的是organization? 01/16 14:12
相同的 instruction set 不一定有相同的 architecture 以前也許 inc 比 add 快 但現在的 x86 架構下 兩者根本是一樣快的 (自己試一試就知道了)
H45:不過我們應該只是討論為什麼有i++吧.... 01/16 14:16
H45:我認為原因就是一樓說的,ADD指令和INC指令的差異 01/16 14:18
如果你寫 i=i+1; 夠聰明的 compiler 就知道這和 i++; 是同樣的意思 而會選擇最適合的指令完成它 實際上 C 並沒有規定 compiler 看到 i++ 就要優先使用累加指令 也從來沒說你寫 i++ 會比 i=i+1 還快 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.3.35
kevinjl:因為宣傳這種理念 符合我的利益 01/17 08:16
kevinjl:抱歉推文寫錯篇 上一句 是要推在上一篇的 請問怎麼刪推文ꄠ 01/17 08:18
slzhao:在設計C語言時,大部分CPU對於inc跟add的速度是有差的. 01/17 08:26
slzhao:而C語言本來就不是定位在很高階的程式語言,最佳化在初期也 01/17 11:38
slzhao:是很簡陋的.因為compile時間也是cost. 01/17 11:40