C程序设计语言——九、编译预处理命令
目录
一、预处理命令概念
1、概念
2、C提供的预处理功能主要包括
3、格式
二、无参宏——不带参数的宏定义
1、一般形式:#define 标识符 字符串
2、知识点
三、有参数——带参数的宏定义
1、一般形式:#define 标识符(形参) 字符串
2、知识点:
四、文件包含
#include<~> 把另外一个源程序的全部内容嵌入到源程序中来
1、#iclude<文件名> 标准目录
2、#include "文件名"
一、预处理命令概念
1、概念
“编译预处理命令”是进行编译第一次扫描前,系统自动先对程序的预处理部分进行编译,然后才对源程序进行编译
2、C提供的预处理功能主要包括
- 宏定义
- 文件包含
- 条件编译
3、格式
- #开头
- 单独占一行
- 结尾不加分号
二、无参宏——不带参数的宏定义
1、一般形式:#define 标识符 字符串
- 标识符称为“宏名”,通常为大写英文字母,以区别其他标识符;
- 预处理时原样替换(宏展开),而不管其含义是否正确,一直到对宏展开的结果进行编译时,才会产生错误提示;
2、知识点
-
字符串中的宏,不进行宏替换
-
宏定义嵌套:原样替换
-
只做宏替换
三、有参数——带参数的宏定义
1、一般形式:#define 标识符(形参) 字符串
- #define SQ(n) n*n
2、知识点:
-
宏名和形参之间不能有空格
-
形参不分配内存,不必做类型说明
-
宏调用中的实参可以是表达式,宏定义中的形参是标识符
-
宏不分配内存,不占用程序运行时间,只占用编译时间
四、文件包含
#include<~> 把另外一个源程序的全部内容嵌入到源程序中来
1、#iclude<文件名> 标准目录
只检索C语言编译系统所确定的标准目录
2、#include "文件名"
首先对使用包含文件的源文件所在的目录进行检索。若没有找到指定的文件,再在标准目录中检索
3、知识点
- include 语句包含的文件如有变化,则包含这个文件的源程序应重新编译
- 一个include只包含一个文件
- 文件包含允许嵌套:3(2(1))
- 编译时,是将两个文件作为一个源程序进行编译,得到一个 .obj