- 18
- 0
- 约2.69万字
- 约 129页
- 2017-06-03 发布于四川
- 举报
* 第*页 void backwards(char s[],int index) /*函数定义*/ { if (‘A’)/*A的ASCII码65 { printf(“%c”,‘A’); /*S[0]=‘A’*/ backwards(s,1); /* 递归调用*/ printf(“%c”,s[0]); /* 输出字符*/ } } 显示: ABCCBA 返回第一次 * 第*页 小结 : 介绍了函数的定义和传值调用函数的使用方法 。 注意:若用全局变量作为函数的参数,则在函数中可以使得该全局变量的值发生变化。 对于递归函数的设计一定要有可使递归结束的条件,否则会使程序产生无限递归。 使用预处理命令时,要注意以下几点: 1.宏替换定义的末尾不能使用分号“;”。 2.使用文件包含时,要避免出现变量和函数发生重定义的现象。 * * * * 第*页 C程序的编译处理,目的是把每一条C语句用若干条机器指令来实现,生成目标程序。 由于#define等编译预处理指令不是C语句,不能被编译程序翻译,需要在真正编译之前作一个预处理,解释完成编译预处理指令,从而把预处理指令转换成相应的C程序段,最终成为由纯粹C语句构成的程序,经编译最后得到目标代码。 编译预处理 * 第*页 编译预处理的主要功能: 文件包含(#include) 宏定义(#define) 条件编译 编译预处理功能 * 第*页 ? 1. 宏定义 1) 不带参数的宏定义 用指定的标识符(宏名)代表一个常量或字符串。 #define 标识符 常量/字符串 * 第*页 例6.8 求圆的周长、面积和圆球的体积。 #define PI 3.1415926 /? 宏名PI用大写,行末无分号 ?/ main( ) { float l, s, r, v ; scanf(“%f ”,r); l = 2.0 ? PI ? r; s = PI ? r ? r ; v = 4.0 / 3 ? PI ? r ? r ? r ; printf(“l=%10.4f \ns=%10.4f \nv=%10.4f \n”,l,s,v); } * 第*页 ? 进行宏定义时,可以引用已定义的宏名,层层置换。 ? 对程序中用双引号括起来的字符串,即使与宏名相同,也不会被置换。 ? 宏名的有效范围为该宏定义命令之后至本源文件结束。通常,宏定义命令一般写在文件开头或函数之前作为该文件的一部分。 ? 可以用 #undef 命令终止宏定义的作用域。如: #define G 9.8 main( ) { } #undef G float f( ) ? G 的作用范围 * 第*页 2.带参数的宏定义 语句形式: #define 宏名(形参表) 表达式 例6.9 #define PI 3.1415926 #define S(r) PI ? r ? r main( ) {float a, area; a=3.6; area=S(a); /? area=3.1415926?a?a,但不会置换a为3.6 ?/ printf(“r=%f \narea=%f \n”,a,area); } * 第*页 ? 若将area=S(a) 改写成 area=S(a+2),将置换为: area=PI ?a+2?a+2,而不是: area=PI ?(a+2)?(a+2)。 若要达到后者之目的,则应将宏定义命令改写为: #define S(r) PI ? (r) ? (r) ? 宏名与括号之间不得有空格,因为宏名与表达式之间的分隔符为空格。如果用#define S (r) PI ? r ? r 的话,则被置换为 area=(r) PI ? r ? r(a) ? 宏展开并不进行值的传递,即不求表达式的值,也没有“返回值”的概念。 ? 宏不存在类型问题,宏名无类型,参数也无类型,表达式可以是任何类型。 ? 对带参数的宏定义的置换展开是用“表达式”对等的置换“形参表”中的参数。上例中的“?”是不会被置换的。 * 第*页 注:这里的 t 展开后为 t = (a+b)(c+d)?(a+b):(c+d) 如果第一行写成: #define MAX(x,y) xy ? x : y 则这里的 t 展开后为 t = a+bc+d?a+b:c+d 因为置换展开是用“表达式”对等的置换“形参表”中的参数。 ? 定义带参数的宏,可以实现一些简单的函数功能。 如: #define MAX(x,y) (x)(y)?(x) : (y) ? main( )
您可能关注的文档
- 农历二十四节气.ppt
- 农村信用社合规风险控制.ppt
- 农药登记管理.ppt
- 农村庭院设计.ppt
- 冠心病MicrosoftPowerPoint幻灯片.ppt
- 冠词、数词、名词和代词.ppt
- 冠心病的护理.ppt
- 冠词的特殊用法.ppt
- 冬季健康指南.ppt
- 冬季养生话康“福”A.ppt
- DW深圳丽泽智能科技有限公司指纹识别仪DW-FP1说明书用户手册.pdf
- 三星智能戒指 智能戒指 SM-Q500 SM-Q501 SM-Q502 SM-Q503 SM-Q505 SM-Q506 SM-Q507 SM-Q508 SM-Q509 用户手册.pdf
- HP用户手册HP产品用户手册.pdf
- TÜV SÜDTÜV南德意志集团ISO 26262合规说明书用户手册.pdf
- CERBERUS塞伯罗斯二维码门禁读卡器CR06R系列用户手册.pdf
- FANXI AI模块 FXSNR1001 用户手册.pdf
- QCMG中联汽车起重机QY25K5D11000 R3360 说明书用户手册.pdf
- ZJU用户手册用户手册试用版 V1.0用户手册.pdf
- Enviro环保系统电子台账系统无型号信息用户手册.pdf
- Renesas瑞萨电子微控制器RX62T RX71M用户手册.pdf
最近下载
- 云南省2024年中考地理试卷附解析答案.pdf VIP
- 青年拔尖人才支持计划自然科学类申报书-广东石油化工学院.pdf VIP
- 医学影像学第一节食管与胃肠道影像学.pptx VIP
- 电力安全操作规程培训课件.pptx VIP
- 一锅法铜催化合成苯并硒唑类衍生.doc VIP
- 病人突发心脏骤停的应急预案演练脚本(2篇).docx
- OECD -二十国集团 经合组织公司治理原则2023.docx
- 2026年树立和践行正确政绩观专题研讨个人发言材料+“一把手”在树立和践行正确政绩观学习教育读书班开班式上的讲话.docx VIP
- 2023年江西新余中考历史真题及答案.doc VIP
- 2025年江西新能源科技职业学院单招职业技能测试题库及完整答案1套.docx VIP
原创力文档

文档评论(0)