c - 如何在c中的字符串宏中传递字符串参数

标签 c macros

假设我有 x 作为字符串参数的宏 #define a(x) "this is x" .如果我调用 a(test) , 形成的字符串应该是 "this is test" .

最佳答案

您期待从宏参数创建字符串,因此,正在寻找 # operator .在类似函数的宏的替换部分中,#符号成为将标记转换为字符串的预处理运算符。所以你需要

#define a(x) "this is " #x

或者
#define a(x) "this is " #x " in the middle."

关于c - 如何在c中的字符串宏中传递字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215174/

相关文章:

c - 带 8051 MCU (CC2541) 的定时器基准中断

c - makefile 中是否忽略了扩展名?

c - 这是 C 标准中整数类型符号位定义的错误吗?

javascript - 是否有一种有利可图的方式来记录文本区域中的用户操作?

c++ - 如何打印递归 lambda 模板的名称?

c - C 代码的 R 内联编译在 Windows 上失败

c - PETSc 卡在 MatView() 上

c++ - 访问宏中的变量值

macros - 在宏中取消引用时 undefined variable

clojure - 如何编写打印自己后缀的嵌套宏?