请阅读下面的代码,提出意见与建议,并优化代码
源代码:
#define BYTE unsigned char //256个字节,数值范围[0,255]BYTE Fun1(BYTE nOral,BYTE nTemp)
{
BYTE nResult = (((nTemp <128)?(2*nOral *nTemp/255):(255-2*(255-nOral)*(255-nTemp)/255)));
nResult = 2*((nOral>>1)+64)*nResult/255;
return nResult;
}
void Test()
{
intnWidth = 10000; int nHeight = 10000;
BYTE*pOralData = new BYTE(nWidth*nHeight);
BYTE*pTempData = new BYTE(nWidth*nHeight);
...//赋值不考虑,每个值的范围在0-255之间
int i,j;
for (j=0;j<nHeight;j++)
{
for (i=0;i<nWeight;i++)
{
BYTE* pOral = pOralData + i*nHeight + i;
BYTE* pTemp = pTempData– j*nHeight + i;
pOral[0] = Fun1(pOral[0],pTemp[0]);
}
}
}
