gpt4 book ai didi

c - 是否有一种单宏方法来为 C 宏参数添加前缀和引号

转载 作者:太空狗 更新时间:2023-10-29 15:32:10 25 4
gpt4 key购买 nike

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

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

最佳答案

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

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

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

关于c - 是否有一种单宏方法来为 C 宏参数添加前缀和引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33517741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com