看在给铜板的份上再说点:
指针和数组的性能相对大小是和机器,编译器。与代码段也有关系
.L0:
addl (%eax,%edx,4), %ecx
incl %edx
cmpl %edi,%edx
jl .L0
.L1
addl (%eax),%ecx
addl $4,%eax
cmpl %edx,%eax
jb .L0
int sum(int a[], int l)
{
int i = 0;
int s = 0;
for (; i < l; i++)
s += a[i];
return s;
}
-----------------------------------
int __sum(int *a, int l)
{
int *p = &a[l-1];
int s = 0;
while (a <= p)
s += *a++;
return s;
}
看看有什么不同?