是否有一种宏方法来前缀和引用C宏参数

是否有一种宏方法来前缀和引用C宏参数,c,macros,C,Macros,因此,在研究如何使define宏工作时,我找到了#和#宏帮助程序,并使用它们简化了宏。宏的关键部分将变量设置为包含变量名称(但不仅仅是变量名称)的字符串。作为一个简化的例子,让我们使用一个宏,叫做“代码> SET(x),它应该扩展集合(某物) >代码>某物=“PrimoSoad”< /代码> ./P> 到目前为止,我找到的唯一方法是使用两个宏,如#define QUOTE(X)#X和#define SET(X)X=QUOTE(pre##X)。但是,使用多个宏似乎太过分了,可能会导致进一步宏扩展出

因此,在研究如何使define宏工作时,我找到了
#
#
宏帮助程序,并使用它们简化了宏。宏的关键部分将变量设置为包含变量名称(但不仅仅是变量名称)的字符串。作为一个简化的例子,让我们使用一个宏,叫做“代码> SET(x),它应该扩展<代码>集合(某物)<代码> >代码>某物=“PrimoSoad”< /代码> ./P> 到目前为止,我找到的唯一方法是使用两个宏,如
#define QUOTE(X)#X
#define SET(X)X=QUOTE(pre##X)
。但是,使用多个宏似乎太过分了,可能会导致进一步宏扩展出现问题(我认为)。有没有一种更干净、单行的方法来做同样的事情?

\define SET(x)x=“pre#”x

C在编译时进行字符串连接,所以相邻的两个字符串文本被连接起来

“你好”“世界”
->
“你好世界”