7.1.25文件包含
文件包含是C语言预处理的另一个重要功能,用“#include”来实现,将一个源文件的全部内容包含到另一个源文件中,成为它的一个部分,文件包含的一般格式为:
#include 或者#include “文件名”
两种形式的区别在于:使用尖括号表示在系统头文件目录中查找(由用户在设置编程环境时设置),而不在源文件目录中查找。使用双引号则表示首先在当前的源文件目录中查找,找不到再到系统头文件目录中查找。
演示代码如下图所示:
1、程序的头文件1.h
2、程序的主题main()函数
3、运行结果如下:
补充:“”可以代替所有的<>,反过来却不可以。
文件目录包含简介
7.1.26文件包含
1、一条include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。
例如:
h 2.h需要分别包含。
这样写include 语句:#include “m1.h,m2.h” 或#include “m1.h”,”m2.h”
而必须写成:#include “m1.h” #include “m2.h”
2、文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。
下面代码为1.h包含2.h..。Main
函数包含2.h,这样1.h和2.h都包含了
3、文件包含语句中被包含的文件通常是以.h 结尾的头文件,这种头文件中的内容多为变量的定义、类型定义、宏定义、函数的定义或说明,但被包含的文件也可以是以.c为扩展名的C语言源文件。
Include不仅包含头文件.h,也可以包含.c源文件
注意:避免重定义现象。
7.1.27条件编译
通过某些条件,控制源程序中的某段源代码是否参加编译,这就是条件编译的功能,一般来说,所有源文件中的代码都应参加编译,但有时候希望某部分代码不参加编译,应用条件编译可达到这以目的。
第一种:
条件编译示例代码演示
运行结果如下:
第二种:
条件编译示例演示主要代码
M未被定义时:
执行结果:
定义M之后,代码如下:
执行结果:
没有关机,执行取消。
7.1.28编译及预处理小节
讨论C语言程序编译及预处理的相关内容,C程序的编译分编辑、预处理、编译和链接几个步骤,预处理指令是由预处理器负责执行的,主要有头文件包含、宏定义、条件编译等,经过预处理后,编译器才开始工作,将每个编译单元编译成二进制代码文件,但此时分散的二进制代码文件中的变量和函数没有分配到具体内存地址,因而不能执行,需要链接器将这些二进制代码文件、用到的库文件中相关代码,系统相关的信息组合起来,形成二进制可执行文件。
掌握程序编译链接的过程能帮助理解错误的根源,提高调试的效率,是写出高质量代码的必要条件。