#include<stdio.h>
#define MAX 0
int main()
{
#ifdef MAX
printf("MAX defined");
#endif
#if defined (MAX)
printf("MAX is defined");
#endif
return 0;
}
两者都是#ifdef
和#if defined
效果是一样的,那么它们之间有什么区别呢?我还没有看到这些指令的反汇编代码,如果您看过,请也尝试解释一下。
最佳答案
这种差异是历史性的。最初只有#ifdef
。新的语法更加灵活,允许将测试与逻辑条件结合起来,但在简单的形式中,您可以互换使用它们。
关于c++ - #ifdef VALUE 与 #if Defined (VALUE) 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090300/