如何从C中的MACRO函数返回一个字符串?

muj*_*hid 3 c string macros c-preprocessor

我想根据作为MACRO FUNCTION参数传递的值创建一个字符串.就像是:

#define ABC(x,y) return "anystr_x_y.tar.bz2"
main()
{
   a = ABC(2,3);
}
Run Code Online (Sandbox Code Playgroud)

所以最后,它应该返回"anystr_2_3.tar.bz2"

我想知道如何使用作为MACRO fnc参数传递的值创建该字符串.

任何帮助!谢谢 !

cni*_*tar 8

使用"stringize operator"定义您的宏,如下所示:

#define ABC(x,y) "anystr_" #x "_" #y ".tar.bz2"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我刚刚学到了一些东西.我敢肯定它是标准的,我问这个问题是出于对我的无知! (2认同)
  • 这是因为字符串是一种特殊情况,它们总是自动连接.当你写'x ="ABC""DEF";`它与写'x ="ABCDEF"是一回事;" (2认同)