#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
都具有相同的效果,那么它们之间有什么区别?如果您看到过这些指令的反汇编代码,那么请尝试解释一下。
答案 0 :(得分:3)
差异是历史性的。最初只有#ifdef
。较新的语法更加灵活,可以将测试与逻辑条件结合起来,但是以简单的形式,您可以互换使用它们。