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的文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值