1、所有编译预处理命令均以“ # ”开头
编译预处理共分为:
a.宏定义
b.文件包含
c.条件编译
2、宏定义
作用:在编译预处理时,将源程序中所有标识符替换成语句序列
分为:有参宏 和 无参宏
无参宏:纯替换
示例:#define PI 3.14
有参宏: 源程序中所有标识符替换成字符串,并将字符串中的参数用实际参数替换
#define 标识符(参数表) 字符串
#define S(a,b) (a*b)/2
注:宏定义时,宏名和参数之间不能有空格,否则空格后面所有字符序列都作为替换的字符串
.带参数的宏展开时,只作简单的字符和参数的替换(纯替换)
例:#define L( r ) 2*PI*r
源程序有 L(2+3)
则编译预处理后变为:2*3.14*2+3 而不是:2*3.14*5
解决办法:
#define L(r) 2*PI*(r)
3、文件包含
作用:将指定文件内容嵌入到一个源文件中
#include <xx.x> // 标准方式:在C语言编译器的C函数库头文件中查找要包含的文件
#include "xxxx" // 通用方式:先在源文件目录中查找要包含的文件,若未找到,则按标准方式查找
4、条件编译
一般用于根据条件判断是否要编译某一段代码
格式:
若标识符被定义过
#ifdefine 标识符
/*程序段1*/
#else
/*程序段2*/
#endif
若标识符未被定义过
#ifndef 标识符
/*程序段1*/
#esle
/*程序段2*/
#endif
根据表达式判定
#if 表达式
/*程序段1*/
#else
/*程序段2*/
#endlf