【发布时间】:2019-06-26 17:06:15
【问题描述】:
我知道已经有一篇与我类似的帖子 (C++ `ifdef` with concatenation of macros values),但该帖子已经很老了,提供的解决方案对我不起作用,因为我无法设置我想要检查的定义。所以我希望有人可以帮助我。
问题是我想用一个固定的文本来连接两个 a 的 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 定义。
我希望有人可以帮助我。谢谢!
【问题讨论】:
-
请提供旧帖的链接。而且你不能在预处理器中使用预处理器。
-
##运算符特定于类函数宏的替换列表。您不能(直接)在条件包含指令中使用它。 -
你仍然做不到 - 为什么不问一个关于失败的解决方案的问题呢?
-
这是您指的问题吗? stackoverflow.com/questions/34109448/…
-
您能否解释一下为什么@templatetypedef 链接的问题中的解决方案对您不起作用?
标签: c c-preprocessor