C语言提供的预处理
(在编译之前进行)
主要有三种:宏定义,文件包含和条件编译
预处理命令不是C语句,不用加分号
1、宏定义
-
形式:
- #define 宏名 替换文本
- #define 宏名(参数) 替换文本
#define N 5
-
在C语言程序中,
符号常量
的定义要使用宏定义
预处理命令 -
宏名习惯用大写字母,但是也可以用小写
-
宏定义不是C语句,行尾不必加
分号
-
宏定义使用原则,为先替换再计算`
#define K 2+3 k/k = 2+3/2+3 = 6 #define ADD 10+5 3*ADD/5 = 3*10+5/5 = 31 #define f(x) x*x int a=6,b=2; f(a+b) = a+b*a+b = 20
2、文件包含
所谓“文件包含”就是指一个源文件可以将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件中。C语言提供了
#include
命令用来实现文件包含
- 形式:
- 系统目录: #include <文件名>
- 系统目录+用户目录: #include “文件名”
- 常见的头文件
- 标准输入输出的头文件:#include <stdio.h>
- 数学函数的头文件:#include <math.h>
- 字符串函数的头文件:#include <string.h>
3、条件编译
- 条件编译命令有三种基本形式:
1、
#ifdef 标识符
程序段1
#else
程序段2
#endif
2、
#ifndef 标识符
程序段1
#else
程序段2
#endif
3、
#if 表达式
程序段1
#else
程序段2
#endif