一、定义
所有的预处理器命令都是以井号(#)开头。
必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始
预处理器只是一个文本替换工具,会指示编译器在实际编译之前完成所需的预处理
二、宏定义
#define 定义宏
#define的用法就是用#define来定义一个符号常量,而要修改时,只需修改#define这条语句就行了,不必每处代码都修改
- 可以用宏定义一条或多条语句
- 可以用宏来定义函数,因为宏定义也可以带参数
例如:
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10 * ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
结果:
sum = 5
sum = 50
在使用带有参数的宏之前,必须使用 #define 指令定义。参数列表是括在圆括号内,且必须紧跟在宏名称的后边。宏名称和左圆括号之间不允许有空格
三、头文件
使用预处理指令 #include 可以引用用户和系统头文件。
它的形式有两种:
- #include <文件名>
这种形式用于引用系统头文件。
在系统目录的标准列表中搜索文件名。- #include “文件名”
这种形式用于引用用户头文件。
在包含当前文件的目录中搜索文件名。
- 只引用一次头文件
- 有条件引用:有时需要从多个不同的头文件中选择一个引用到程序中