我在用STM8 编译器“ST Visual Develop”时发现C语言编译有这样的怪事,宏定义居然通不过,我用过一年多的Keil,从没出现过这样的事。程序如下:
#include "stm8s.h"
#define all 0x08;
void main(void)
{ u8 reg,preplace_mode;
reg=all;
if(preplace_mode & reg) //可以通过
// if(preplace_mode & 0x08) //可以通过
// if(preplace_mode & all) //不可以通过
{
}
while (1);
}
通不过的报警信息为:“#error cpstm8 main.c:10(20+4) missing )”。谁能告诉我这是为什么?
这样的问题不只遇然一次,用了半年时间ST,有很多这样的问题,C语言本来是很灵活的,一用这个编译器就体现不出来,很浪费时间。 |