c++ - 如何使用 cpp 将宏转换为字符串?

标签 c++ string constants stringification

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/

相关文章:

c++ - 基于条件然后三元运算符获取值的更快方法?

c - Xcode c bad_acces 代码 2 错误

javascript - 将 HTML 字符串解析为 DOM 并将其转换回字符串

string - 将字符串拆分为特定长度的组

generics - 如何根据 Rust 中的泛型选择常量?

c++ - 声明为 consts 的函数 args 随定义变为非常量

python - Pybind11 类型错误

c++ - 在c++中为这个对象分配内存

c++ - TinyXpath v_get_xpath_base,第二个参数

C++无法以递归方式删除对象的常量