上一篇我们讲了C语言预处理阶段的宏定义,知道了C语言中宏定义的处理和使用。现将上篇关于宏的问题的答案公布如下:
我们这篇讲讲预处理阶段的文件包含和条件编译。
一.文件包含
什么是文件包含?
文件包含的格式如下:
#include"文件名"
通常,该文件是后缀名为"h""的头文件。文件包含命令把指定头文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。简单的说就是直接粘贴到本文件中。
文件包含的作用
在程序设计中,文件包含是很有用的。一个大程序可以分为多个模块,而程序中的有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用。这样可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错。
文件包含需要注意的
二.条件编译
条件编译的作用
通常我们编写的源文件中的代码都参加编译。但有时我们需要在满足一定的条件下再去编译一部分,不满足则编译另一个部分,这就是“条件编译”。
条件编译功能可按不同的条件去编译不同的程序部分,从而产生不同的目标代码文件。在程序的移植和调试中我们经常用到。
条件编译的形式
1.#ifdef形式
#ifdef 标识符 (或#if defined标识符)
程序段1
#else
程序段2
#endif
如果标识符已被#define定义过,则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空),#else可以没有,即可以写为:
#ifdef 标识符 (或#if defined标识符)
程序段
#endif
2.#ifndef形式
#ifndef 标识符(或#if !(defined 标识符))
程序段1
#else
程序段2
#endif
如果标识符未被#define命令定义过,则对程序段1进行编译,否则对程序段2进行编译。这与#ifdef形式的功能正相反。
3.#if形式
#if 常量表达式
程序段1
#else
程序段2
#endif
如果常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。
到此C语言中常用到的预处理功能我们就介绍完毕了。大家有什么不明白的或者有什么意见可以关注下面的微信公众号,我们一起在线讨论。下面是针对这篇小编为留的练习题,请回答如下关于文件包含和条件编译的问题答案会在下一篇公布: