宏定义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);