`
java-mans
  • 浏览: 11414718 次
文章分类
社区版块
存档分类
最新评论

C语言深度解剖(精讲版)——读书笔记11 &&自己的一些理解

 
阅读更多

第三章预处理

条件编译

知识点一:条件编译的功能使得我们按不同条件去编译不同程序部分,因而产生不同的目标代码文件。这对程序的移植和调试很有用的。

条件编译有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的文件
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics