gpt4 book ai didi

c - 这个宏包装展示了什么概念?

转载 作者:行者123 更新时间:2023-11-30 15:35:26 25 4
gpt4 key购买 nike

刚刚交给我一堆代码,我对 header 中的宏感到困惑。我无法理解它们的用途:

#define WRAPPER_MACRO(symbol) symbol
#define ANOTHER_SYMBOL WRAPPER_MACRO(ANOTHER_SYMBOL)
#define PREFIXED_ANOTHER_SYMBOL WRAPPER_MACRO(PFX_ANOTHER_SYMBOL)

为什么要这样做?有什么好处?

编辑:这不是我的代码库中的实际逐字代码,但它具有相同的模板。我刚刚替换了宏名称。

最佳答案

正如 @Michael 所说,我们需要查看真正的宏才能确定。但如果没有它们,我愿意做一些可能对您有所帮助的猜测。

宏嵌套可能是 stringification事物。这段代码来 self 维护的代码库:

// As per http://gcc.gnu.org/onlinedocs/cpp/Stringification.html:
// "If you want to stringify the result of expansion of a macro argument, you
// have to use two levels of macros."
#ifndef STRINGIFY
#define STRINGIFY(s) TOSTRING(s)
#define TOSTRING(s) #s
#endif

我还猜测您的 PREFIXED_ANOTHER_SYMBOL 宏正在执行类似于 this 的操作,使用 ### 预处理器指令将某个符号添加到您提供给宏的任何内容之前。

关于c - 这个宏包装展示了什么概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22925302/

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