我刚开始使用处理器,无法理解以下内容。指针和缓存利用率
Asume,我们有一个数组声明
static double x[1000][3]
,我们在功能
double up (double *a, int i)
{
double t=*(a+i*3);
return t;
}
int main(int argc, char *argv[])
{
static double x[1000][3];
//some manipulations//
double b;
for (int i=0;i<10;i++)
{
b=up(&x[0][0],i);
}
}
访问在这种情况下,什么被加载到高速缓存存储器 - 一个指针指向实际值到或仅有地址?如果地址 - 是否意味着会有另一个周期来加载实际值?对于这个循环来说,缓存利用率总体来说是否合适?
对不起,具体的问题或观察你有。否则,这个问题是OT为'太广泛'! –
发布的代码很可能不会编译,如果是这样,它将不会运行,因为它使用8MB的堆栈,这很可能会溢出堆栈... –
问题不在于编译,而只是一个例。我需要知道指针如何工作在缓存中 – user3624070