首页 > 解决方案 > #ifdef VALUE 与 #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给出相同的效果,那么它们之间有什么区别?如果你看过这些指令的反汇编代码,我还没有看到,那么请尝试解释一下。

标签: c++cmacrosdirectivepreprocessor

解决方案


差异是历史性的。原本只有#ifdef. 较新的语法更灵活,允许将测试与逻辑条件结合起来,但在简单的形式中,您可以互换使用它们。


推荐阅读