读书人

宏定义if的有关问题

发布时间: 2013-11-12 12:10:37 作者: rapoo

宏定义if的问题
#define LED2(a)if (a==0)\
GPIO_ResetBits(GPIOF, GPIO_Pin_7);\
GPIO_SetBits(GPIOF, GPIO_Pin_8);\
else \
GPIO_ResetBits(GPIOF, GPIO_Pin_8);\
GPIO_SetBits(GPIOF, GPIO_Pin_7)


我想知道这段有什么问题吗?为何编译不了?还是说要加括号?
[解决办法]
宏定义就是替换,这样写肯定有问题,要加括号的。

#define?LED2(a)  do{
if?(0==a){\
GPIO_ResetBits(GPIOF,?GPIO_Pin_7);\
GPIO_SetBits(GPIOF,??GPIO_Pin_8);\
}else{?\
GPIO_ResetBits(GPIOF,?GPIO_Pin_8);\
GPIO_SetBits(GPIOF,??GPIO_Pin_7); \
}\
} while(0);

读书人网 >单片机

热点推荐