感谢回复,我的解决办法就是这样:
#define EHeat_off {P7OUT |= BIT0; EHisON=0;} //电加热off
#define EHeat_on {P7OUT &=~ BIT0; EHisON=1;} //电加热on
用do while应该有它的好处,大佬毕竟是大佬。
基于现在屏幕大部分时候是横向的,特别是对于我用笔记本来说。更喜欢把一件事写在一行,好象看着更简洁,好比:
unsigned char aa,bb,cc;
至于"定义多条语句宏的时候,至少需要用{}把语句框起来",这有点绝对了。
实际上:
#define EHeat_off P7OUT |= BIT0 ,EHisON=0 //电加热off
#define EHeat_on P7OUT &=~ BIT0, EHisON=1 //电加热on
上边语句完全可以实现功能,且最后是没有分号的,以方便按习惯在调用时后边再加分号,如:
if(...) EHeat_off;
上边实际上是“,”的用法,好比在写if时为节约行数,if后同时要做的事一并写了,不用{}。
如:if(a>b) c=a,a=b,b=c; //交换顺序
毕竟是业余玩,不是按代码行数拿薪水,我个人更喜欢上边这种写法,当然,坏处是出现了我本主题的毛病,另外也不排除在上边if中随手把“,”写成分号导致隐藏的错误。 |