带参数的宏定义这样声明编译报错,怎么回事啊
keil c51中我定义了一个带参数的宏如下:#define ON 1
#define OFF0
#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中没有问题啊
没用过这么复杂的. P2^0 = 0
忘了分号了。 用sbit先声明一下变量,比如sbit LED=P2^0,然后在用宏 yangsen 发表于 2013-9-30 15:41 static/image/common/back.gif
用sbit先声明一下变量,比如sbit LED=P2^0,然后在用宏
正解。
51中不能直接这样访问 :P2^0
另外你这个宏最好大括号加上,要是你的宏是这样的形式就惨了:
lusson 发表于 2013-9-30 16:00 static/image/common/back.gif
正解。
51中不能直接这样访问 :P2^0
太感谢了!
页:
[1]