预处理是在词法扫描和语法分析之前的工作。预处理是C的一个重要功能。
编译之前,预处理程序将引用程序中的预处理命进行预处理,处理之后进入编译。如图。
预处理命令是以#开头的行。这些命令放在函数之外,经常放在程序的前面,成为预处理部分。
C提供了多种预处理功能,如宏定义,文件包含,条件编译等。
合理使用预处理功能写出来的程序便于阅读修改移植和调试也有利于模块化的程序设计。
宏定义
宏定义的功能是用一个标识符表示一个字符串。编译时所有的宏名都会替换成定义的字符串。
无参数宏:
#define 宏名 字符串
行末没有分号。作用域为从宏定义到源程序结束。如果要终止可以使用#undef命令。
宏定义可以嵌套。
宏名一般大写。
有参数宏:
#define 宏名(参数列表) 字符串
宏名和参数表之间不能有空格。
宏定义中的形参最好用括号。
文件包含
把指定的文件插入本命令行,组成一个源文件。
在程序设计中,许多公用的符号常量或宏定义等可单独组成一个文件。
Include""和include<>有区别。<>是在目录中查找,""是在源文件中查找。
一个include命令只能包含一个文件。
条件编译
本段待更新