首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

宏定义if的有关问题

2013-11-12 
宏定义if的问题#define LED2(a)if (a0)\GPIO_ResetBits(GPIOF, GPIO_Pin_7)\GPIO_SetBits(GPIOF,GPIO_P

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

热点排行