内容正文:
第九章 程序设计优化--预处理
1
CONTENTS
目录
01
02
带参数的宏定义
预处理命令
03
文件包含
04
条件编译
C语言
知识树
My First Template
3、文件包含
C语言程序设计
4
C语言程序设计 文件包含
C语言
带参数的宏定义
函数与带参宏的区别
My First Template
C语言
本次任务
输入半径,求
圆的面积
C语言程序设计—文件包含
My First Template
CONTENTS
内容
什么是文件包含
01
关于文件包含的几点说明
02
任务实现
03
7
什么是文件包含
01
C语言程序设计 文件包含
C语言
例:#define PI 3.1415926
什么是文件包含
包含命令 #include <stdio.h>
所谓“文件包含”是指一个源文件可以将另外一个源文件的全部内容包含进来。
C语言程序设计 文件包含
C语言
第一步:字符串替换
编译预处理时,程序按照#define命令行中指定的字符串 从左到右进行置换:area=a*b
文件包含的一般形式
#include <文件名> 或 #include “文件名”
用尖括弧时,系统到存放C库函数头文件所在目录寻找要包含的文件,这称为标准方式
用双引号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。
C语言程序设计 文件包含
C语言
第一步:字符串替换
编译预处理时,程序按照#define命令行中指定的字符串 从左到右进行置换:area=a*b
文件包含的含义
#include “file3.c”
#include “file2.c”
……(file1语句)
……
(file2语句)
……
(file3语句)
(file3语句)
(file2语句)
(file1语句)
……
file1.c
file2.c
file3.c
预编译后的
关于文件包含的几点说明
02
C语言程序设计 文件包含
C语言
说明:
1、一个include 命令只能指定一个被包含的文件,如果要包含n个文件,要
用n个include 命令。
#include "stdio.h"
#include "math.h"
行的,不分配内存单元,不进行值的传递处理,也没有返回值的概念。
C语言程序设计 文件包含
C语言
说明:
2、如果文件file1包含文件file2,而文件file2中要用到文件file3的内容,则可以在文件1中用两个include 命令分别包含文件2和文件3,而且文件3应出现在文件2之前。
file2.c
file1.c
file2.c
file3.c
file1.c
包含
# include “file3.c”
# include “file2.c”
C语言程序设计 文件包含
C语言
说明
3、在一个被包含文件中又可以包含另一个被包含文件,即文件包含是可以嵌套的。
file1.c file2.c file3.c
# include “file2.c” # include “file3.c” 不包含# include命令
…… …… ……
C语言程序设计 文件包含
C语言
说明
4、被包含文件(file2.c)与使用该文件的源文件file1.c,在预编译后将成为同一个文
件,而不是两个文件,因此如果file2.c中包含全局静态变量,在file1.c文件中也
可以正常使用,不必用extern声明。
预编译后的
#include “file2.c”
……(file1语句)
(file2语句)
(file1语句)
……
file1.c
任务实现
03
C语言
本次任务
输入半径,求
圆的面积
C语言程序设计—文件包含
My First Template
C语言程序设计—文件包含
C语言
// zhuchengxu.c
#include "stdio.h"
#include “yuchuli.c"
double calarea(double r)
{ return PI*r*r; }
void main()
{ double r,area;
PR("请输入圆的半径
");
SC("%lf",&r);
area=calarea(r);
PR("圆的面积为:%lf
",area);}
任务实现:
//yuchuli.c
//该文件中只有预处理定义
#include "stdio.h"
#define PI 3.14
#define PR printf
#define SC scanf
文件包含
为什么要这样包含??
“文件包含”命令可以节省程序设计人员的重复劳动
总结
1. 什么是文件包含
3. 任务实现
2. 关于文件包含的几点说明
$$