(40)--6.7 预处理(一)C语言程序设计基础.ppt
《(40)--6.7 预处理(一)C语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《(40)--6.7 预处理(一)C语言程序设计基础.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.7 预处理(一)理(一)6.7.1 宏定宏定义 什么是什么是预处理理ANSI CANSI C标准规定可以在源程序中加入一些标准规定可以在源程序中加入一些“预处预处理命令理命令”,以以改进程序设计环境,提高编程效率改进程序设计环境,提高编程效率。在在对程序进行通常的编译之前,先对程序对程序进行通常的编译之前,先对程序中特殊中特殊的的命令进行命令进行“预处理预处理”。这些预处理命令是由这些预处理命令是由ANSI CANSI C统一规定的,但是它不是统一规定的,但是它不是C C语言本身的组成部分,不语言本身的组成部分,不能直接对它们进行能直接对它们进行编译。编译。预处理基本概念C语言编辑源程序源
2、程序预处理后的理后的源程序源程序预处理预处理编译编译目目标程序程序链接链接可可执行程序行程序预处理命令理命令预处理基本概念C语言提供的提供的预处理命令主要包含以下预处理命令主要包含以下三种:三种:宏定义宏定义文件包含文件包含条件条件编译编译为了与一般语句相区别,这些命令以符号为了与一般语句相区别,这些命令以符号“”开头。开头。例如例如:#define#define#include#include 宏定宏定义命令命令预处理宏定义命令C语言标志:志:#define作用:定作用:定义符号常量和符号常量和带参的宏参的宏分分类:不不带参数的宏参数的宏带参数的宏参数的宏宏定宏定义命令命令不不带参数的宏定参
3、数的宏定义一般形式为:definedefine 标识符标识符 字符串字符串示例:示例:define define PI 3.1415926PI 3.1415926定义时作用:用定义时作用:用指定的指定的标识符宏名标识符宏名PIPI来来代替宏体代替宏体“3.14159263.1415926”。宏宏替换替换:在程序编译前会用:在程序编译前会用宏体宏体替换程序中出现的所有替换程序中出现的所有宏名宏名。预处理宏定义命令C语言宏名宏体案例案例1:#include#define PI 3.1415926/*不不带参的宏定参的宏定义*/int main()float l,s,r,v;printf(input
4、 radius:);scanf(%f,&r);l=2.0*PI*r;s=PI*r*r;v=4.0/3*PI*r*r*r;printf(l=%10.4fns=%10.4fnv=%10.4fn,l,s,v);return 0;预处理宏定义命令C语言l=2.0*3.1415926*r;s=3.1415926*r*r;v=4.0/3*3.1415926*r*r*r;(1)(1)宏宏名一般名一般习惯用用大写字母大写字母表示,以便与表示,以便与变量名相量名相区区别,也也可可用小写字母用小写字母。宏名不分配占存宏名不分配占存储空空间,变量分配存量分配存储空空间。(2)(2)宏定宏定义不是不是语句,句,不必在
5、行末加分号不必在行末加分号。如果加了分号。如果加了分号则会会连分号一起分号一起进行置行置换。(3)#define命令写在文件命令写在文件开开头,作用范,作用范围是从定是从定义位置开始到最位置开始到最后一行均有效。但后一行均有效。但可以用可以用undef命令命令终止宏定止宏定义的作用域的作用域。说明:明:预处理宏定义命令C语言示例:示例:#include#define PI 3.1415926int main()s=PI*r*r;void f1(int r)l=2*PI*r;在在f1f1函数中函数中,PIPI不不再代表再代表3.14159263.1415926。可以可以灵活控制宏定灵活控制宏定义
6、的作用范围。义的作用范围。PI的的有效范有效范围C语言#undef PI PI的的有效范有效范围#include#include#define#define R 4.0 R 4.0#define define PI PI 3.1415926 3.1415926#define#define L 2*PI*R L 2*PI*R /*/*宏体中引用已经定义过的宏名宏体中引用已经定义过的宏名PIPI和和R*/R*/#define#define S PI*R*R S PI*R*R /*宏体中引用已经定义过的宏名宏体中引用已经定义过的宏名PIPI和和R*/R*/int int main()main()pr
7、intfprintf(“L L=%10.4fn=%10.4fnS S=%10.4fn=%10.4fn,L L,S S););return 0;return 0;案例案例2:在:在宏定宏定义中可引用中可引用已定已定义的宏名。的宏名。预处理宏定义命令C语言用双撇号括起来的字符串用双撇号括起来的字符串内的字符,即使与宏名相内的字符,即使与宏名相同,也不同,也不进行置行置换宏宏名,要名,要进行宏替行宏替换预处理操作理操作预处理宏定义命令C语言#include#include#define#define R 4.0 R 4.0#define define PI PI 3.1415926 3.141592
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 40-6.7 预处理一C语言程序设计基础 40 6.7 预处理 语言程序设计 基础
限制150内