一段算一个数组中最大最小值的子程序
1)
void MaxMin(U32 *max, U32 *min)
{
U8 i;
U32 _max;
U32 _min;
U32 d;
i=Settings[STABLE_TIME]-1;
_max=0;
_min=0xFFFFFFFF;
while(i!=0xFF)
{
d=Lux[i]; // 用一个临时变量代替Lux[i]
if(d>_max)_max=d;
if(d<_min)_min=d;
i--;
}
*max=_max;
*min=_min;
}
2)
void MaxMin(U32 *max, U32 *min)
{
U8 i;
U32 _max;
U32 _min;
i=Settings[STABLE_TIME]-1;
_max=0;
_min=0xFFFFFFFF;
while(i!=0xFF)
{
if(Lux[i]>_max)_max=Lux[i]; // 直接用Lux[i]
if(Lux[i]<_min)_min=Lux[i];
i--;
}
*max=_max;
*min=_min;
}
在XC8 pro V1.32中编译, 1)比2)小59个word
但是同样程序放在AVRstudio里面(GCC),编译出来,1)和2)是一样的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>