【问题标题】:Is it possible to stringify a variadic macro into a comma delimited list of strings? [duplicate]是否可以将可变参数宏字符串化为逗号分隔的字符串列表? [复制]
【发布时间】:2018-06-25 10:45:24
【问题描述】:

本质上我想写

MACRO(a, b, c)

并让它产生

"a","b","c"

我尝试使用#__VA_ARGS__,但结果是一个包含所有参数的字符串:

"a, b, c"

这不是我想要的。

【问题讨论】:

  • 也许你可以澄清一下调用是否总是 3 个参数 MACRO(a, b, c) 或者它是否可以包含任何参数。
  • 看起来你需要一些递归的东西:#define MACRO(a, ...) #a, MACRO(__VA_ARGS__)。最后一个参数无论如何都需要一个特殊情况,因为它后面没有逗号。

标签: c++ c c-preprocessor


【解决方案1】:
#define MACRO3(a, b, c) #a,#b,#c

为您可能使用的每个参数计数制作一个

【讨论】:

  • 这不是可变参数宏。
猜你喜欢
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2020-08-09
  • 2021-01-23
相关资源
最近更新 更多