- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例8 输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。 #include stdio.h #define LETTER 1 void main() { char str[20]= C Lanaguage,c; int i=0; while((c=str[i]!=\0) { i++; #if LETTER if(c=ac=z) c=c-32; #else if(c=Ac=Z) c=c+32; #endif printf(%c,c); } printf(\n); } * Macro1.cpp * Compile1.cpp 学时安排 64=30+14+20 14:实验学时,第3,6,7,8周,周四晚上6:40~9:40 20:课程设计,10-13周,周四下午,晚上,其中13周晚上不上 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 基本数据类型 运算符和表达式 数据的输入和输出 三种程序控制结构 数组 函数 指针 结构体和共用体 文件操作 预处理 学时:64=30+16+24 请回忆符号常量的定义及其优点 #include stdio.h #define PI 3.14159 void main() { float r,h,v; scanf(“%f%f”,r,h); v= PI *r*r*h; printf(“\nVolume=%f”,v); } 第10讲 编译预处理 所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。 主要内容 10.1 宏定义 10.2 文件包含 10.3 条件编译 10.1 宏定义 在C语言中,“宏”分为无参数的宏(简称无参宏)和有参数的宏(简称有参宏)两种。 无参宏定义 有参宏定义 无参宏定义 1.无参宏定义的一般格式 #define 标识符 语言符号字符串 其中:“define”为宏定义命令;“标识符”为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言符号字符串”可以是常数、表达式、格式串等。 2.使用宏定义的优点 (1)可提高源程序的可维护性 (2)可提高源程序的可移植性 (3)减少源程序中重复书写字符串的工作量 [例1] 宏替换的应用 #define M (y*y*y+2*y+1) //宏定义 #include stdio.h void main() { int s,y=3; s=M*M+(y-2)*(M-1)+M; printf(“\ns=%d”,s); } s= (y*y*y+2*y+1) * (y*y*y+2*y+1) +(y-2)*((y*y*y+2*y+1) –1) + (y*y*y+2*y+1) ; 结果为:1223 3.说明 (1)宏名一般用大写字母表示,以示与变量区别。 (2)宏定义不是C语句,所以不能在行尾加分号。 (3)在宏展开时,预处理程序仅以按宏定义简单替换宏名,而不作任何检查。如果有错误,只能由编译程序在编译宏展开后的源程序时发现。 (4)宏定义命令#define出现在函数的外部,宏名的有效范围是:从定义命令之后,到本文件结束。通常,宏定义命令放在文件开头处。 (5)在进行宏定义时,可以引用已定义的宏名 。 (6)对双引号括起来的字符串内的字符,即使与宏名同名,也不进行宏展开。 10.2 有参宏定义 1.带参宏定义的一般格式: #define 宏名(形参表) 语言符号字符串 2.带参宏的调用和宏展开 (1)调用格式:宏名(实参表) (2)宏展开:用宏调用提供的实参字符串,直接置换宏定义命令行中、相应形参字符串,非形参字符保持不变。 有参宏定义示例 例2:#define M(y) y*y*y+2*y+1 //宏定义 … a=M(10); //宏调用 即a=10*10*10+2*10+1; 3.说明 (1)定义有参宏时,宏名与左圆括号之间不能留有空格。否则,C编译系统将空格以后的所有字符均作为替代字符串,而将该宏视为无参宏。 (2)有参宏的展开,只是将实参作为字符串,简单地置换形参字符串,而不做任何语法检查。 有参宏定义实例 例3:利用带参数的宏实现简单函数的功能 #define MIN(a,b)
您可能关注的文档
- C语言实例教程 第2版 普通高等教育“十一五”国级级规划教材 作者 赵克林 第8章 函数.ppt
- C语言实例教程 第2版 普通高等教育“十一五”国级级规划教材 作者 赵克林 第9章 结构体与枚举类型.ppt
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第1章 C语言概述.PPT
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第2章 基本数据类型、运算符与表达式.ppt
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.ppt
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第4章 选择结构程序设计.PPT
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第5章 循环结构程序设计.ppt
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第6章 数组.ppt
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第7章 函数.PPT
- C语言习题集与实验指导 作者 伍鹏、杜红、王圆妹、邓绍金 第8章 指针.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第11-1讲 指针(概述和运算)1.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第11-2讲 指针(指针与函数、数组1).ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第11-3讲 指针(指针与数组2).ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第11-4,5讲 指针(指针数组、多级指针、动态指针).ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第11-4,5讲 指针(指针数组、多级指针、动态指针)1.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第12-1讲 结构体概述.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第12-1讲 结构体概述1.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第12-2讲 结构体指针与函数1.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第12-4讲 共用体、自定义.ppt
- C语言程序设计 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 安俊秀 第13-1讲 文件概述、打开和关闭.ppt
文档评论(0)