可能重複:
Is there a performance difference between i++ and ++i in C++?優化代碼:++ p比p ++更快嗎?
在C++
,我看到人們在for
環或其他地方,要增加值經常使用++p
,而不是使用返回值。我聽說這樣更有效率,因爲p++
在之前返回值,因此需要臨時空間。
但是,感覺即使是一個非常無知的編譯器也會將該返回值作爲死代碼(只要增量代碼被內聯,因此編譯器可以看到返回值不是必需的)。
我試圖拿出一個很好的例子,使用某種迭代,iter++
將實際創建副本(即使不使用的iter++
返回值。
畢竟,我們不「噸真的經常考慮寄存器分配或者當我們寫代碼迭代器。
我學會了用p++
只是因爲這是我從學到的書本一樣。是寧願++p
時沒有返回值,使用了過時的做法,或者乾脆部分優雅的編碼?爲什麼語言不叫++C
呢?
取決於'p'是什麼。它是一個「迭代器」嗎? 'int'?通常情況下,編譯器會優化這些東西。 – Marlon 2012-03-29 21:18:50
嗯,解析一個1000000字符的字符串,並刪除所有非alpha字符需要0.0150秒在我的電腦上。 ++ p和p ++的區別真的很重要嗎? – BlackBear 2012-03-29 21:20:15