【发布时间】:2018-08-14 00:20:32
【问题描述】:
我在网上浏览了很多关于宏字符串化的例子,但找不到类似的东西。
我目前的定义如下。
#define PIN_A (0+1)
#define PIN_B (0+2)
#define PIN_C (0+3)
#define str(x) #x
#define xstr(x) str(x)
#define PIN_DEF(x) { #x, xstr(PIN_ ## x) }
输出
PIN_DEF(A)
会变成
{ "A", "(0+1)" }
然而,我真正需要的是
{ "A", "1" }
有可能吗? :/
【问题讨论】:
-
不,我认为这不可能。预处理器只进行文本替换,算术不是文本替换。它只在条件表达式中进行算术运算。
-
不,这种宏应该避免作为斑块
标签: c macros stringification