第三章预处理
条件编译
知识点一:条件编译的功能使得我们按不同条件去编译不同程序部分,因而产生不同的目标代码文件。这对程序的移植和调试很有用的。
条件编译有3种形式:
(1)第一种形式:
#ifdef 标识符
程序段1
#else
程序段2
#endif
上面这种形式的功能是:如果标识符已被#define命令定义过,则对程序段1进行编译;否则对程序段2进行编译。
(2)第二种形式:
#ifndef 标识符
程序段1
#else
程序段2
#endif
这种形式的功能是:如果标识符未被#define命令定义过,则对程序段1进行编译;否则对程序段2进行编译;
(3)第三种形式:
# if 常量表达式
程序段1
#else
程序段2
#endif
这种形式的功能是:如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下完成不同的功能;
文件包含
文件包含是预处理的一个重要的功能,它将多个源文件链接成一个源文件进行,结果将生成一个目标文件。C语言提供#include 命令来实现文件包含的操作,它实际是宏替换的延伸,有两种格式。
1.)格式1:
#include <filename>
其中,filename为要包含的文件名称,用尖括号括起来,也称为头文件,表示预处理到系统规定的路径中去获得这个文件(即C编程系统提供的并存放在指定的子目录下的头文件)。
2.)格式2:
#include "filename"
其中,filename为要包含的文件名称,双引号表示预处理应在当前目录中查找文件名为filename的文件;若没有找到,则按系统指定的路径信息搜索其他目录。找到文件后,用文件内容替换该语句。
#include “” 和<>的区别这是很多校园招聘中笔试题都会出现的,我就碰到过1次;
<> 表示:预处理到系统规定的路径中去获得这个文件
“”双引号表示:预处理应在当前目录中查找文件名为filename的文件
本文深入讲解了条件编译的不同形式及其应用,包括如何通过条件编译实现程序的移植与调试。此外,还详细介绍了文件包含的两种格式及其实现方式,并对比了不同格式之间的区别。
684

被折叠的 条评论
为什么被折叠?



