#ifdef VALUE 与 #if defined (VALUE) 之间有什么区别
What is the difference between #ifdef VALUE vs #if defined (VALUE)
#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
。较新的语法更灵活,允许将测试与逻辑条件结合起来,但在简单的形式中,您可以互换使用它们。
#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
。较新的语法更灵活,允许将测试与逻辑条件结合起来,但在简单的形式中,您可以互换使用它们。