楼主:
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) 亦同.