if(( Warning_Collect_temper/10 <= Warning_High_temper-Warning_Htemper_Hys)&&( Warning_Htemper_run==1))
这个语句有错吗
Warning_Collect_temper/10的运算结果是24.5
Warning_High_temper-Warning_Htemper_Hys运算结果是24
24.5 <= 24 这个条件不成了啊,怎么就进入条件之后的语句了呢
各位大神哪里出错了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我的建议是不要在单片机里用浮点
可以这样
if(( Warning_Collect_temper<= ((Warning_High_temper-Warning_Htemper_Hys)*10 ))&&( Warning_Htemper_run==1))
不过需要注意要保证 ((Warning_High_temper-Warning_Htemper_Hys)*10 )之后不会溢出.
1、单看 LZ 的代码风格,还处于暴力原始的阶段,你可以去看 《高质量 c/c++ 编程指南》,或者 屁眼公司的编程规范
2、括号优先级的问题,要注意添加,不要靠记忆蛮力,举个例子,你认为下面表达式的值是多少呢?
- 1 << 4 + 1
复制代码不加括号的话,你能确保所有人都算对吗?一周热门 更多>