本帖最后由 FSL_TICS_ZJJ 于 2014-6-4 13:06 编辑
我想比较2个uchar数据A(实际压力) B(预设压力) 当A的数字大于B数据10 20 30 40 50时这5种情况时, 谁有好的方法呢
如果仅仅做差比较的话 A -—— B 那就有可能是 10 —— 160 那么就溢出了 ,
还有各位能不能把你们在这里做的比较好的处理方法分享出来呗,
比如 字符转换、不同数据间的比较等等。大家都分享下呗 嘿嘿
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哥们 你的不大明白 《然后把你的参数对应不要用10、20、30、40、50,想办法对应到0x10、0x20、0x30、0x40、0x50,这样的话直接把低四位清除,就可以得出一个顺序的序列号,然后用指针数组就OK了!》 《》里的内容有点不明,用指针数组作何用处呢
定义一个函数指针数组啊:
void Fun0(void)
{
//此函数为空
}
void Fun10(void)
{
//大于10的时候的处理
}
void Fun20(void)
{
//大于20的时候的处理
}
......................
typedef void (*Fun)(void);
Fun Option[6] = {Fun0, Fun10, Fun20, Fun30, Fun40, Fun50};
如果你把你的参数调整到了0x10 x20 x30 x40 x50,那么你就可以用下面的方法:
int FunIndex =(( (A-B) > 0) &&( (A-B) < 60)) ? (A-B) >> 4 : 0;
Option[FunIndex]();
就可以了!
一周热门 更多>