深入理解计算机系统 (6.20英文版)(6.16中文版)

 struct algae_position{

  int x;

  int y;

};

for(i =0; i < 16; i++){

  for(j =0; j < 16;j++){

     total_x += grid[j][i].x;

     total_y += grid[j][i].y;

}

}

 

其中total_x和total_y存储在寄存器中,缓存大小为16byte。我想问的是在缓存中如何做的?是grid[0][0]的x ,y然后grid[0][1]的x,y还是grid[0][0]的x,y然后grid[1][0]的x,y。我觉得是第一种但是如果是第一种的话和答案完全不相符。第二种思路和答案完全吻合。请高手解答


慕少森
浏览 828回答 2
2回答

动漫人物

问题可能是grid[j][i].x的下标j,i的位置与循环变量不对应造成的,如果换成grid[i][j].x就可以了

慕侠2389804

第二种。外循环是i,内循环是j,你的数组下标是grid[j][i]。
打开App,查看更多内容
随时随地看视频慕课网APP