您的位置:首页 > 理论基础

深入理解计算机系统--学习

2010-06-13 17:14 260 查看
《深入理解计算机系统》上面有说指针访问确实比下标访问要快。理论上说确实是这个样子
但是现代编译器经过,下标访问和指针访问会生成同样的汇编代码。所以其实他们应该是一样的了,而且下标访问可读性比指针访问更强,而指针访问表达力更强。各有好出。
下面贴代码:(无优化)
int a[100];
a[1] = 0;
gcc -S 生成[code]
subl $400, %esp
movl $0, -396(%ebp)
int a[100];
*(a+1) = 0;
gcc -S 生成
subl	$400, %esp
leal	-400(%ebp), %eax
addl	$4, %eax
movl	$0, (%eax)
O3优化:
int a[100];
a[1] = 0;
gcc -S 生成
没有了,被gcc去掉无用指令了。
int a[100];
*(a+1) = 0;
gcc -S 生成
没有了,被gcc去掉无用指令了。
其实这个只是一个非常简单的分析了。我个人觉得,没有比较在这个上面选择,因为用下标访问你会发现通常来说有巨大优势。
^^个人只见,如果我说的错了
[email]webmail.matrix@gmail.com[/email]
欢迎讨论。
[/code]
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息