【发布时间】:2012-05-14 13:30:58
【问题描述】:
在 C 语言中,是否可以在可变参数宏中连接每个可变参数?
例子:
MY_MACRO(A, B, C) // will yield HDR_A, HDR_B, HDR_C
MY_MACRO(X, Y) // will yield HDR_X, HDR_Y
普通的## 运算符对于可变参数宏具有特殊含义(避免空参数列表的逗号)。与__VA_ARGS__ 一起使用时,仅使用第一个标记进行连接。
例子:
#define MY_MACRO(...) HDR_ ## __VA_ARGS__
MY_MACRO(X, Y) // yields HDR_X, Y
建议?
【问题讨论】:
-
看看stackoverflow.com/a/1872506/832273这可能会有所帮助