这是什么“#define CONCAT_3(p1,p2,p3)p1 ## p2 ## p3”宏定义是什么意思?
问题描述:
我已经看过一个带参数的宏,但这是相当新的。这是什么“#define CONCAT_3(p1,p2,p3)p1 ## p2 ## p3”宏定义是什么意思?
我无法理解它会返回什么以及它如何工作?
答
##
是预处理器级联运算符。
它将参数连接在一起。
因此CONCAT_3(foo, bar, foobar)
将产生foobarfoobar
。
'##'是c中的连接运算符。它用于连接c预处理器中的两个宏。 – rsp