数据是存在一维数组中,现在遍历方案如下:
char *pData; //指向30数据
char *pTemp;
LineNum = 640;
for(i =0;i<640;++i)
{
for(t = 0;t<480;++t)
{
pData[t*LineNum];
p[i]; //遍历得到的值
}
}
修改为:
char *pData;
typedef char (*changeP)[640];
changeP pp = (changeP)pData; //将一维数组转换为二维指针形式
for(i=0;i<640;i++)
{
for(t=0;t<480;t++)
{
pp[t][i]; //遍历得到的值
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
思路描述:
原方案中每次遍历都需要一次乘法,感觉有点浪费时间,转成二维指针就没这个问题了,
不过实际运算后,计算两种方式需要的时间,相差不多啊。
看不懂反汇编,请各位论坛前辈指导一下,万分感谢