一、基本概念
🏷️预处理是在程序做翻译之前要做的工作,主要是因为C在程序前面大都使用一些不属于C的语句,称为“预处理命令”,必须将这些语句交给预处理器,将它扩充程C语言,再进行下一步的编译处理。
🏷️C的预处理器是一个宏处理器,在编译器编译程序之前会自动启动,主要用来处理C中含有 “#” 符号开头的语句,称为“预处理命令”语句。
✍️C提供的预处理功能主要有以下三种:
- 文件包含
- 宏定义
- 条件编译
这些功能分别用宏定义命令、文件包含命令、条件编译命令来实现。
为了与一般C语句相区别,这些命令以符号 “#” 开头。
例如:#define #include
二、“文件包含”处理
所谓“文件包含”处理是指一个源文件可以将另一个源文件的全部内容包含进来。C语言提供了#include命令用来实现“文件包含”的操作。
其一般形式为:#include "文件名” 或 #include <文件名>
三、 宏定义
(1)不带参数的宏定义
宏定义一般形式为:
- 宏定义的作用是在本程序文件中用指定的标识符PI来代替 “3.1415926” 这个字符串,在编译预处理时,将程序中在该命令以后出现的所有的PI都用 “3.1415926” 代替。这种方法使用户能以一个简单的名字代替一个长的字符串。
- 这个标识符(名字)称为 “宏名”
- 在预编译时将宏名替换列表的过程称为 “宏展开”。
- #define是宏定义命令。
(2)带参数的宏定义
带参数的宏定义一般形式为:
- 字符串中包含在括弧中所指定的参数
- 作用:不是进行简单的字符串替换,还要 进行参数替换。