作者:
hunandy14 (Charlott.HonG)
2016-08-31 16:37:59請問一維的指標存取
兩種存取方式會有什麼差異嗎
存取速度會不一樣嗎
int* arr = new int[10];
//
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-08-31 16:53:00沒有, bracket notation 只是 syntax sugar
會有差異,硬體DMA光一個copy動作效能就差50%純軟可能就沒差惹
作者:
wtchen (沒有存在感的人)
2016-08-31 19:39:00請教樓上為啥會有差異?不懂....(沒最佳化的情形下)
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-08-31 22:01:00理論上用 pointer 要先加出結果才可以去 access, 然後array index 可以直接跳, 所以後者是會比較快啦但 2016 年應該連單晶片 compiler 都沒有那麼蠢的了
編譯器會優化,沒差。沒開優化在大多編譯器上是有差的印象中GCC開-O0會有差,但是Clang開-O0編譯出來是一樣的
作者: yvb 2016-09-02 16:22:00
試過gcc和g++,版本4.6和3.3, 開-O0看objdump,結果都一樣.
作者: yvb 2016-09-03 12:45:00
版本4.6是x86_64, 版本3.3則是mips(be);又試 3.2 arm(be) 和 3.4 mips(le) 亦同.