您尚未登录。

楼主 #1 2020-04-07 09:04:58

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 272
积分: 250

学渣请教一个C语言 #, ## 宏语法的问题

https://github.com/torvalds/linux/blob/master/drivers/pinctrl/sunxi/pinctrl-sunxi.h#L32

#define SUNXI_PINCTRL_PIN(bank, pin)		\
	PINCTRL_PIN(P ## bank ## _BASE + (pin), "P" #bank #pin)

所以这个宏函数:
SUNXI_PINCTRL_PIN(B, 4)


展开应该是:
PINCTRL_PIN(PB_BASE + 4, PB4)



那么问题来了, 请教 一个#, 和两个#有什么区别呢?

离线

楼主 #5 2020-04-07 10:04:19

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 272
积分: 250

Re: 学渣请教一个C语言 #, ## 宏语法的问题

shaoxi2010 说:

#把宏参数作为一个字符串,##用于宏参数贴合

原来如此

shaoxi2010 说:

还有展开的结果应该是PINCTRL_PIN(PB_BASE + 4, “PB4”)

看起来应该是这样了, 感谢大佬。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn