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)
那么问题来了, 请教 一个#, 和两个#有什么区别呢?
离线
自己调用自己?递归宏函数?
离线
#把宏参数作为一个字符串,##用于宏参数贴合
离线
还有展开的结果应该是PINCTRL_PIN(PB_BASE + 4, “PB4”)
离线
#把宏参数作为一个字符串,##用于宏参数贴合
原来如此
还有展开的结果应该是PINCTRL_PIN(PB_BASE + 4, “PB4”)
看起来应该是这样了, 感谢大佬。
离线
学习啦。
离线