首页 新闻 会员 周边 捐助

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

0
悬赏园豆:15 [已解决问题] 解决于 2012-07-04 17:26

 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。我觉得是第一种但是如果是第一种的话和答案完全不相符。第二种思路和答案完全吻合。请高手解答

puluo的主页 puluo | 菜鸟二级 | 园豆:208
提问于:2012-06-05 23:13
< >
分享
最佳答案
0

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

收获园豆:8
zhangsixin | 初学一级 |园豆:180 | 2012-06-06 08:17
其他回答(1)
0

第二种。

外循环是i,内循环是j,你的数组下标是grid[j][i]。

收获园豆:7
无之无 | 园豆:5095 (大侠五级) | 2012-06-06 13:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册