预处理功能是C语言特有的功能,它是在对源程序正是编译前由预编译程序进行编译的。我们在写代码的时候可以通过预处理命令来调用预处理功能。
在C语言程序中,在每个文件的开头都包含于“#”,这就是预处理的标志。所谓预处理就是在进行编译的第一遍之前(词法扫描和语法分析)所作的工作。当对一个源程序进行编译的时候,系统会自动条用预处理程序对源程序中的部分预处理进行处理,处理完毕后才进行源程序进行编译。
预处理提供很多种功能,比如宏定义、文件包含、条件编译等,今天要讲的就是条件编译,对于宏定义和文件包含,应该是比较熟悉的。
条件编译可分为三种情况,按照不同的条件去编译不同的程序部分,因而产生不同的目标文件,这对于程序的移植和调试都非常有用。
(1)#ifdef 标识符
程序段1
#else
程序段2
#endif
它的功能是:如果标识符已经被#define定义过,则对程序段1进行编译,否则对程序段2进行编译。如果没有程序断2,#else可以没哟。
(2)#ifndef 标识符
程序段1
#else
程序段2
#endif
它的功能是跟上面恰恰相反的,也就是说如果标识符没有被#define定义过,则对程序段1进行编译,否则对程序段2进行编译。
(3)#if 常量表达式
程序段1;
#else
程序段2;
#endif
它的功能是根据常量表达式的真假去判断执行哪个程序段,如果为真则执行程序段1,否则执行程序段2。
~~END~~