C语言课件第9章-宏定义.ppt
《C语言课件第9章-宏定义.ppt》由会员分享,可在线阅读,更多相关《C语言课件第9章-宏定义.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9 9章章 编译预处理编译预处理主要内容主要内容n宏替换宏替换n文件包含文件包含n条件编译n预定义宏n运算符和后三节为后三节为自学内容自学内容预处理命令:预处理命令:n所谓预处理,就是所谓预处理,就是C C编译程序对编译程序对C C源程序源程序编译前由编译预处理程序对预处理命令编译前由编译预处理程序对预处理命令进行处理的过程。进行处理的过程。nC C语言中,以语言中,以“”开头开头(如如define)define)的语句统称为编译的语句统称为编译预处理命令预处理命令。n这些命令必须在一行的开头这些命令必须在一行的开头以以“”开开始,末尾不加分号始,末尾不加分号,以区别一般的,以区别一般的C
2、 C语语句。句。C C语言的预处理命令语言的预处理命令宏定义:宏定义:#define,#define,#undefundef文件包含:文件包含:#include#include 9.1 9.1 宏替换宏替换n不带参数的宏定义不带参数的宏定义(即符号常量定义语句即符号常量定义语句)#define#define 宏名宏名 替换文本替换文本n编译时编译预处理程序自动对源程序中的编译时编译预处理程序自动对源程序中的“宏名宏名”用用“替换文本替换文本”来替换,即来替换,即宏展开宏展开n例如:例如:#define LENGTH 300#define LENGTH 300#define PI 3.14159
3、26#define PI 3.1415926宏替换使用说明宏替换使用说明n(1)(1)宏名一般用宏名一般用大写字母大写字母,以示与一般,以示与一般变量区别。变量区别。n(2)(2)使用宏替换的作用是提高程序的清使用宏替换的作用是提高程序的清晰性、可移植性。晰性、可移植性。n(3)(3)宏定义是用宏名代替一个字符串,宏定义是用宏名代替一个字符串,是简单的置换,并不作语法检查。是简单的置换,并不作语法检查。n(4)(4)宏定义语句末尾不能加分号,否宏定义语句末尾不能加分号,否则会连分号一起置换。则会连分号一起置换。(5)#define(5)#define 命令出现在程序中函数的外命令出现在程序中函
4、数的外面;宏名的有效范围为:定义宏命令之后面;宏名的有效范围为:定义宏命令之后到本源文件结束。到本源文件结束。n(6)(6)可以用可以用undefundef命令终止宏定义的作命令终止宏定义的作用域。用域。n(7)(7)“替换文本替换文本”中可以包含已定义过的中可以包含已定义过的宏名。宏名。n(8)(8)“替换文本替换文本”不能替换双引号中的字不能替换双引号中的字符串。符串。n(9)(9)在同一个程序段中,同一个宏名不能在同一个程序段中,同一个宏名不能重复定义。重复定义。9.1.2 9.1.2 带参数的宏定义带参数的宏定义n一般形式:一般形式:#define#define 宏名宏名(参数表参数表
5、)字符串字符串n说明:说明:“字符串字符串”中包含中包含“参数表参数表”中所指定的中所指定的参数。参数。【例】带参数的宏定义。【例】带参数的宏定义。#define DB(x)(x)*2)main()double y;float z=10;y=DB(z);/*等价于等价于:y=z*2;*/printf(y=%fn,y);定义时,最好在字符串的形参外加一个()P191【例】#define abs(x)(x)0)?(x):(-(x)main()int a=-3,b;float c=-2.4,d;b=abs(a);d=abs(c);printf(b=%d,d=%fn,b,d);区别函数和带参数的宏定义
6、:区别函数和带参数的宏定义:n函数调用时,先求出实参表达式的值,再用这函数调用时,先求出实参表达式的值,再用这个值赋给形式参数;带参数的宏定义仅仅进行个值赋给形式参数;带参数的宏定义仅仅进行字符串的简单替换字符串的简单替换。n函数调用是在程序运行时分配临时内存单元;函数调用是在程序运行时分配临时内存单元;而宏展开是在编译时进行,展开时不分配内存而宏展开是在编译时进行,展开时不分配内存单元,不进行值传递。单元,不进行值传递。n函数调用只占运行时间;宏替换只占编译时间。函数调用只占运行时间;宏替换只占编译时间。n宏替换后使源程序增长,函数调用不会。宏替换后使源程序增长,函数调用不会。写出下面程序的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 定义
限制150内