带参数的宏定义这样声明编译报错,怎么回事啊

2019-03-24 18:38发布

keil c51中我定义了一个带参数的宏如下:
#define ON   1
#define OFF  0

#define BUZZER(a) if(a)  P2^0 = 1;
                  else   P2^0 = 0
编译后提示我
key.c(62): error C141: syntax error near '='
key.c(62): error C141: syntax error near 'else'
key.c(62): error C141: syntax error near '='

请问这是怎么一回事啊,我这个定义在PICC中没有问题啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。