条件编译(conditional compiling)
#if 表达式1
...
#elif 表达式2
...
#elif 表达式n
...
#else
...
#endif
#define XXX 0
// #ifdef 只关心宏是否被定义
// 第一段条件编译, 是逻辑1被编译
#ifdef XXX
逻辑1
#else
逻辑2
#endif
// #if 既关心宏是否定义,又关心宏的逻辑的真假
// 第二段条件编译, 是逻辑2被编译
#if XXX
逻辑1
#else
逻辑2
#endif