首页 > 试题广场 >

考虑下面的矩阵转置函数: typedef int array

[问答题]
考虑下面的矩阵转置函数:
typedef int array[4] [4];
void transpose2 (array dst, array src)
{
int i,j;

for(i.0;i< 4;i++) {
for  (j = 0;j<4;j++){
dst[j][i] = src[i][j];
}
}
假设这段代码运行在一台具有如下属性的机器上:
  • sizeof (int)==4。
  • 数组src从地址0开始,而数组dst从地址64开始(十进制)。
  • 只有一个L1数据高速缓存,它是直接映射、直写、写分配的,块大小为16字节。
  • 这个高速缓存总共有32个数据字节,初始为空。
  • 对src和dst数组的访问分别是读和写不命中的唯一来源。
对于每个row和col,指明对src[row] [col ]和dst [row] [col]的访问是命中(h)还是不命中(m)。例如,读src[0][0]会不命中,  而写dst[0] [0]也会不命中。

这道题你会答吗?花几分钟告诉大家答案吧!