野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16194|回复: 1

12 集 固件库点亮LED续行符,宏定义可以加分号为什么

[复制链接]
发表于 2020-10-8 10:23:01 | 显示全部楼层 |阅读模式
本帖最后由 姿粉 于 2020-10-8 10:48 编辑

固件库点亮LED续行符


野火论坛202010081022011777..png
/*

#define LED_REDD  \
     LED1_ON;\
     LED2_OFF\
     LED3_OFF   
这句话等价于下面那句话
#define LED_REDD  LED1_ON;LED2_OFF; LED3_OFF
#define LED_REDD  LED1_ON;LED2_OFF  LED3_OFF
宏定义带分号编译器也能通过
*/
LED_G(a)  当它出现时,它所代表是整个 if(a) \
                        GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); \
                     else  GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
还是它所替换的只是这两句中的一句根据if判断吗?    GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);

                                                                            GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);


野火论坛202010081038592001..png
回复

使用道具 举报

发表于 2020-10-9 11:24:18 | 显示全部楼层
和数学的因式替换一样,如果宏定义有分号,那么使用宏定义地方就不用加分号了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 06:58 , Processed in 0.028227 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表