【发布时间】:2021-07-16 11:44:30
【问题描述】:
我有一个关于 C 预处理器的问题。 我已经定义了宏:
#define num2str(x) str(x)
#define str(x) #x
我将一个数字传递给一个字符串常量:
const char myString[] = num2str(NUMBER);
例如,当我输入 #define NUMBER 10 时,效果很好。
但是我想放num2str(NUMBER + 10),结果是“10 + 10”而不是“20”。
有什么方法可以计算表达式 NUMBER+10 并获得“20”?
【问题讨论】:
-
Is there *any* way..使用其他东西然后 C 预处理器。喜欢m4。 -
虽然 C 预处理器确实有能力评估某些简单的常量表达式,但这些结果仅可用于预处理器表达式,例如
#if表达式。我不知道将评估结果实际放入预处理器输出的方法。
标签: c preprocessor