(1)#ifdef标识符 (2)#ifndef 标识符 (3)#if 表达式
程序段1 程序段1 程序段1
#else #else #else
程序段2 程序段2 程序段2
#endif #endif #endif
标识符:如#define MAX 1宏定义的MAX标识符,
表达式:如min == 1。
Question1:
#ifdef标识符:若标识符被定义,则编译程序段1,否则编译程序段;
#ifndef标识符:若标识符未被定义,则编译程序段1,否则编译程序段。两者实质是一样的。
Question2:
有人会问:不用条件编译命令而直接用if语句也能达到要求,用条件编译命令有什么好处呢?的确,此问题完全可以不用条件编译处理,但那样做,目标程序长(因为所有语句都编译),而采用条件编译,可以减少被编译的语句,从而减少目标的长度。当条件编译段比较多时,目标程序长度可以大大减少。