两者都是条件编译指令,区别如下:
1.#if
#if 常量表达式 //常量表达式非零 则编译程序段A 否则编译程序B
程序A
#else
程序B
#endif
2.#ifdef
#ifdef 标识符 //标识符经过#define定义过 则编译程序段A 否则编译程序B
程序A
#else
程序B
#endif
3.#ifndef
#ifndef 标识符 //标识符没有经过#define定义过 则定义标识符并编译程序段A 否则编译程序B
程序A
#else
程序B
#endif
其中else部分可以省略
例如
#ifdef 标识符 //标识符经过#define定义过 则编译程序段A
程序A
#endif