gpt4 book ai didi

c - 在标记粘贴的宏上使用#ifdef?

转载 作者:行者123 更新时间:2023-11-30 21:26:59 28 4
gpt4 key购买 nike

我知道已经有一篇与我的类似的帖子( C++ `ifdef` with concatenation of macros values ),但该帖子相当旧,提供的解决方案对我不起作用,因为我无法设置我想要检查的定义。所以我希望有人能帮助我。

问题是我想用固定文本连接两个定义来创建 ifdef。

想象一下下面的代码

#define ENABLE_MODULE_1

enum Modultype
{
MODULE_1,
MODULE_2
};

#define MODULE MODULE_1


int main()
{
#ifdef ENABLE_ ## MODULE
printf("NAME defined");
#else
printf("NAME not defined");
#endif
return 0;
}

所以我基本上想检查ENABLE_MODULE_1是否是基于MODULE定义定义的。

我希望有人能帮助我。谢谢!

最佳答案

这是不可能的。预处理器宏仅扩展一次,并且仅当不在另一个预处理器语句中时扩展。除此之外,串联只能在 #define 语句中使用。

关于c - 在标记粘贴的宏上使用#ifdef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777907/

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