1.经常需要对一些变量做加1或者减1的操作,提炼函数
typedef enum _Comd
{
IncValue,
DecValue,
}Comd;
// 参数: 命令,目标,最小值,最大值
unsigned char Adjust( Comd opratComd, unsigned char curValue, unsigned char minValue, unsigned char maxValue )
{
if(opratComd == IncValue)
{
if(curValue < maxValue)
curValue++;
else
curValue = minValue;
}
else if(opratComd == DecValue)
{
if(curValue > minValue)
curValue--;
else
curValue = maxValue;
}
return curValue;
}
// 使用
unsigned char Num = 0;
Num = Adjust_Value(IncValue, Num , 1, 100);
2.变量的1个单位实际是n,其变化后需要校正偏差,提炼函数
#define LEVEL_TOTAL 10
#define OFFSET 8
// 参数: 当前值,默认值
unsigned char set( unsigned char value, unsigned char val_default )
{
if(value > (LEVEL_TOTAL/2))
{
return val_default + (value-LEVEL_TOTAL/2)*OFFSET;
}
else if(value < (LEVEL_TOTAL/2))
{
return val_default - (LEVEL_TOTAL/2-value)*OFFSET;
}
else
{
return val_default;
}
}
// 使用
unsigned char NumA = 0;
unsigned char NumB = 0;
NumA = set(NumB,100);