第8章 编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)

2023-07-30
| 17页
| 90人阅读
| 3人下载
普通

资源信息

学段 中职
学科 职教专业课
课程 程序设计基础
教材版本 -
年级 高二
章节 -
类型 课件
知识点 -
使用场景 同步教学
学年 2023-2024
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 76 KB
发布时间 2023-07-30
更新时间 2023-07-30
作者 匿名
品牌系列 -
审核时间 2023-07-30
下载链接 https://m.zxxk.com/soft/40132896.html
价格 0.00储值(1储值=1元)
来源 学科网

内容正文:

第8章 编译预处理 8.1 宏 定 义 8.2 文件包含 8.1 宏 定 义 8.1.1无参宏定义 无参宏定义通常用来定义符号常量,即用一指定的宏名(标识符)来代表一个字符串,一般形式为: #define 宏名 字符串 这就是已经介绍过的定义符号常量。如: # define PI 3.1415926 它的作用是指定用标识符PI来代替“3.1415926”这个字符串。在编译预处理时,将程序中在该命令以后出现的所有的PI都用“3.1415926”代替。该过程称为宏展开。 下一页 返回 8.1 宏 定 义 宏定义中宏名常用大写字母表示,宏名与字符串之间用空格分隔。# define是宏定义命令。其中字符串可以是一个数值型数据、表达式或字符串。例如: # define A 100 # define PR printf # define B (30-(2*6)) # define S (A*B) 上一页 下一页 返回 8.1 宏 定 义 例8.1 从键盘连续输入字符,统计其中的大写字母的个数,直到按ESC键结束。 #include “stdio.h” #define ESC 27 main( ) { int count=0; char c; while ((c=getch())!=ESC) if (c>=’A’ && c<=’Z’) count++; printf(“count=%d”,count); } 上一页 下一页 返回 8.1 宏 定 义 其中,预处理程序将此程序中凡是出现ESC的地放都用27替换。如果ESC的编码值有所变化,只需修改宏定义语句即可,这样有助于程序的调试和移植。 上一页 下一页 返回 8.1 宏 定 义 使用符号常量应注意的事项: (1)预处理模块只是用宏名作简单的替换,不作语法检查,若字符串有错误,只有在正式编译时才能检查出来。 (2)没有特殊的需要,一般在预处理语句的行末不加分号,若加了分号,则连同分号一起替换。 (3)使用宏定义可以减少程序中重复书写字符串的工作量,提高程序的可移植性。 (4)宏定义命令一般写在文件开头、函数之前,作为文件的一部分,宏名的有效范围为宏定义之后到本源文件结束。如果要强制终止宏定义的作用域,可以使用#undef命令。 (5)定义符号常量时,可以引用已定义的符号常量。 (6) 程序中用双括号括起来的字符串中的字符,若与符号常量同名,不进行替换。 上一页 下一页 返回 8.1 宏 定 义 8.1.2有参宏定义 利用#define命令不仅可以定义符号常量,也可以定义带参数的宏。一般形式为: #define 宏名(参数表) 字符串 字符串中也包含参数表中的参数,该参数为形参。预编译程序根据宏定义用字符串替换程序中出现的带参数的宏,其中定义式中的形式参数用相应的实际参数替换,实参可以是常量、变量或表达式;若字符串中的某个字符不是形参,则在替换时保留。 上一页 下一页 返回 8.1 宏 定 义 #define MAX(a,b) ((a)>(b)?(a):(b)) main( ) { int x,y; printf (“输入两个数:”); scanf (“%d,%d”,&x,&y); printf (“MAX=%d”,MAX(x,y)); } 以上程序执行时,用字符串“((a)>(b)?(a):(b))”来替换MAX (a,b)。所以,可以输出两个数的较大者。 上一页 下一页 返回 8.1 宏 定 义 在程序设计中,经常要把反复使用的运算表达式定义为带参的宏。例如: # define MIN (a,b) ( (a) < (b) ? (a) : (b)) /* 求两个数中的较小者 */ # define PER(a,b) (100.0*(a)/(b)) /* 求a是b的百分之几 */ # define ABS(x) ((x)>=0)? (x) : (-x) /* 求x的绝对值 */ # define ISO(x) (((x)%2= =1

资源预览图

第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
1
第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
2
第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
3
第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
4
第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
5
第8章  编译预处理(课件)-高二《程序设计基础》同步教学(北京理工版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。