直接上代码
/
static short data3[65536][128];//复原的数据
static short data4[65536][128];//原有数据
int wave=56;
static double sum=0;
double SNR;
SNR=ErrorCalculate(data3,data4,wave,sum);
printf("SNR=%lf\nsum,mutiplied 10^3 times then printf=%lf\n",SNR,(sum*pow((double)10,3)));
///
#include "stdafx.h"
#include "ErrorCalculate.h"
double ErrorCalculate(short a[65536][128],short b[65536][128],int wave,static double sum)
{
double SNR=0;
for (int i = 0; i
{
sum+=(a[i][wave]-b[i][wave])*(a[i][wave]-b[i][wave]);
}
sum=sum/65536;//sum是均方值
SNR = 10*log10((255*255) /sum );
return SNR;
}
//
这个代码,返回值SNR是对的,可是我明明声明了SUM为STATIC为何,其值依然是0?
我希望sum能保存函数内部计算的结果。。。
楼主小白,请指教一下。。。