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

时间:2016-12-19 02:56:13

标签: c macros

假设我有x作为字符串参数#define a(x) "this is x"的宏。如果我打电话为a(test),则形成的字符串应为"this is test"

1 个答案:

答案 0 :(得分:6)

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

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

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