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。我觉得是第一种但是如果是第一种的话和答案完全不相符。第二种思路和答案完全吻合。请高手解答
问题可能是grid[j][i].x的下标j,i的位置与循环变量不对应造成的,如果换成grid[i][j].x就可以了
第二种。
外循环是i,内循环是j,你的数组下标是grid[j][i]。