GNU 的 cpp 允许你像这样将宏参数转换成字符串
#define STR(x) #x
然后,STR(hi)
被替换为 "hi"
但是如何将宏(不是宏参数)变成字符串呢?
假设我有一个具有某些值的宏 CONSTANT,例如
#define CONSTANT 42
这不起作用:STR(CONSTANT)
。这会产生 "CONSTANT"
,这不是我们想要的。
最佳答案
诀窍是定义一个调用 STR
的新宏。
#define STR(str) #str
#define STRING(str) STR(str)
然后 STRING(CONSTANT)
根据需要生成 "42"
。
关于c++ - 如何使用 cpp 将宏转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6852920/