C语言程序设计 第9章 编译预处理

上传人:E**** 文档编号:89422842 上传时间:2019-05-25 格式:PPT 页数:11 大小:36KB
返回 下载 相关 举报
C语言程序设计 第9章  编译预处理_第1页
第1页 / 共11页
C语言程序设计 第9章  编译预处理_第2页
第2页 / 共11页
C语言程序设计 第9章  编译预处理_第3页
第3页 / 共11页
C语言程序设计 第9章  编译预处理_第4页
第4页 / 共11页
C语言程序设计 第9章  编译预处理_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C语言程序设计 第9章 编译预处理》由会员分享,可在线阅读,更多相关《C语言程序设计 第9章 编译预处理(11页珍藏版)》请在金锄头文库上搜索。

1、第九章 编译预处理 C语言提供了一些以#开头的指令,如: #define #include 等。 这些指令是在编译以前就事先进行处理的,因而称为“编译预处理”指令。 可以用编译预处理指令实现以下三种功能: 1) 宏定义 2) 文件包含 3) 条件编译,91 宏定义 1、不带参的宏定义 用一个指定的标识符(宏名)代表一个字符串。 一般形式: #define 标识符 字符串 如:#define PI 3.1415926 有了这一宏定义后,程序中凡是用到3.1415926的地方都可以以宏名PI出现。,例:定义一个宏名来代表一个参数。 #define PI 3.1415926 main() float

2、 r=2,c,s; c=2*PI*r; s=PI*r*r; 系统在对程序进行编译以前,首先将所有的编译预处理指令进行预处理,对本例来说,就是将程序中所有的宏名PI还原成3.1415926, 宏展开。,例:定义一个宏名来代表一个数据个数。 #define N 100 main() int aN,i; float s=0; for(i=0;iN;i+)scanf(“%d”, 宏名N-符号常量,可以作为数组说明的长度。 方便修改参数。,例:定义一个宏名来代表一个计算公式。 #define PI 3.1415926 #define AREA PI*r*r main() r=3,s; s=AREA; p

3、rintf(“n %f”,s); 注意:系统对宏定义的预处理是一个字符串的还原过程,不要把宏名看成一个整体。,注意以下程序的运行结果: #define F x+y main() int x=3,y=5,z; z=2*F; printf(“n %d”,z); ,2、带参的宏定义 宏定义也可以带参数,其一般形式为: #define 宏名(参数表) 字符串 如:#define S(a,b) a*b area=S(3,2); 定义宏名S代表矩形面积,参数a,b为边长。 宏展开过程:,92 文件包含处理 在一个源文件中将另一个源文件的内容包含进来。 文件包含指令的一般形式: #include “文件名”

4、 或 #include ,#include “file2.c”,A,file1.c,A,B,B,file1.c,file2.c,例: #include “math.h” main() float a,b,c,s,area; scanf(“%f%f%f”, ,#include “f.h” main() printf(“n%f”,f1(3.0); printf(“n %f”,fac(10); float f1(float r) return(PI*r*r); float fac(int n) int i; float s=1; for(i=1;i=n;i+) s*=i; return(s); ,#define PI 3.1415926 float f1(float r); float fac(int n);,f.c,f.h,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号