|
楼主 |
发表于 2015-11-28 07:33:12
|
显示全部楼层
已解决,不过只知道和一个自编的求极值函数有关,还是和数据类型的定义有关
之前出问题是是这样调用的:I_result=GetMinMaxNum( 1,i1,i2,i3,i4,0,0,0,0,0,0,0,0,0,0,0,0);
修改OK后是这样的:I_result=(uint32_t )GetMinMaxNum( 1,(float)i1,(float)i2,(float)i3,(float)i4,0,0,0,0,0,0,0,0,0,0,0,0);
//从16个数浮点数中找出极大值,极小值
//Imode: 1 求极大值 0 求极小值
// f0-f15,数据输入;
float GetMinMaxNum(char iMode,float f0,float f1,float f2,float f3,float f4,float f5,float f6,float f7,float f8,float f9,float f10,float f11,float f12,float f13,float f14,float f15)
{
float ftmp[16];
char i1,Iindex;
ftmp[0]=f0; ftmp[1]=f1; ftmp[2]=f2; ftmp[3]=f3; ftmp[4]=f4; ftmp[5]=f5; ftmp[6]=f6; ftmp[7]=f7;
ftmp[8]=f8; ftmp[9]=f9; ftmp[10]=f10; ftmp[11]=f11; ftmp[12]=f12; ftmp[13]=f13; ftmp[14]=f14; ftmp[15]=f15;
Iindex=0;
for ( i1=0;i1!=16;++i1)
{
if (iMode && (ftmp[Iindex ] < ftmp[i1]))
Iindex=i1; //单语句时可以省略花括号
else if (!iMode && (ftmp[Iindex] > ftmp[i1]))
Iindex=i1; //单语句时可以省略花括号
}
return ftmp[Iindex ];
} |
|