是否有一种单宏方式来引用和引用C宏参数

时间:2015-11-04 09:10:40

标签: c macros

因此,在考虑让我的定义宏工作时,我找到了###宏助手,并使用它们来简化我的宏。宏的关键部分将变量设置为包含变量名称的字符串(但不包括变量名称)。作为一个简化的示例,让我们使用一个名为SET(X)的宏,它应该将SET(something)扩展为something = "pre_something"

到目前为止,我发现这样做的唯一方法是使用#define QUOTE(X) #X#define SET(X) X = QUOTE(pre_##X)等两个宏。但是,使用多个宏似乎过多,并且可能会导致进一步宏扩展的问题(我认为)。是否有一种更干净,单行的方式做同样的事情?

1 个答案:

答案 0 :(得分:4)

#define SET(x) x = "pre_"#x

C在编译时进行字符串连接,因此连接两个字符串文字会连接起来。

"hello " "world" - > "hello world"

相关问题