当前位置: 代码迷 >> 单片机 >> 宏定义if的有关问题
  详细解决方案

宏定义if的有关问题

热度:14   发布时间:2016-04-28 15:13:23.0
宏定义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);
  相关解决方案