- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PPT 高级语言程序的设计 东北大学
程序设计基础(C语言) 东北大学高级语言程序设计课程组 课程网站:/cxsj 程序设计基础(C语言) 预编译和宏定义 预编译处理命令概述 #define命令进行宏定义 #define PI 3.14 #define CIR(R,L,S,V) L=2*PI*R;S=PI*R*R;V=4.0/3.0*PI*R*R*R main() {float r,l,s,v; scanf(%fr); CIR(r,l,s,v); printf(r=%6.2f,l=%6.2f, S=%6.2f,v=%6.2f\n,r,l,s,v); } 宏展开后: main() {float r,l,s,v; scanf(%f,r); l=2*3.14*r; s=3.14*r*r; v=4.0/3.0*3.14*r*r*r; printf(r=%6.2f,l=%6.2f,s=%6.2f,v=%6.2f\n,r,l,s,v); } 条件编译 程序设计基础(C语言)—— /cxsj 1. 概念 预编译是在编译前对源程序进行的一些预加工 预编译由编译系统中的预处理程序, 按源程序中的预处理 命令进行 2. 预编译处理命令 C语言的预编译处理命令均以 “ # ”打头, 末尾不加分号 预处理命令可以出现在程序的任何位置, 其作用域是从出现点到所在源程序的末尾 3. 优点 : 能改善程序设计的环境, 有助于编写易移植, 易调试的程序 一、 不带参数的宏定义 1. 格式 : #define 标识符 替换文本 2. 说明 : (1) 标识符也称宏名, 一般用大写字母表示 (2) 预处理时将程序中所有的宏名用宏体替换, 该过程称 “宏展开”; 但在程序中用 “ ” 括起来的字符串中, 即使 有的字符串与宏名相同, 也不进行替换 #define SIZE 20 void main ( ) { int x ; x = SIZE+15 ; printf( “ SIZE=%d \n”, x ) ; } 称为宏体 输出结果: SIZE=35 称为宏名 (3) 宏定义只是一种简单的字符替代, 不进行语法检查 若将#define SIZE 20 的零写成英文字母‘o’ , 程序中的 x = SIZE+15 ; 会替换为 x = 2o+15; 这时才会发现错误 (4) 宏定义不是C语句, 行末不加分号, 每条宏命令要单独占一行 (5) #define命令出现在函数的外部, 宏名的有效范围为 定义命令之后到本文件结束 (6) 可以用#undef 命令终止宏定义的作用域 (7) 宏定义可以嵌套使用 例 #define L 10 #define W 20 #define S L*W (8) 宏定义与变量定义不同, 它只作字符替换, 不分配内存空间 3. 使用宏替换的优点: 提高程序的可读性, 易于修改 二、 带参数的宏定义 1. 格式 : #define 宏名( 形参表) 替换文本 2. 说明 (1) 宏定义时宏名与括号之间没有空格, 若有空格则会把空格后的所有字符都看成是宏体 (2) 带参数的宏在替换时,不仅宏名被宏体替换, 同时形参被实参替换 (3) 建议带运算符的宏体和形参要用 ( ) 括起来 例 #define PI 3.14159 #define S(r) PI*r*r void main ( ) { float a , area ; a = 3.6 ; area = S(a); printf( “ %f \n”, area) ; } 宏替换: area = 3.14159*a*a ; void main ( ) { float a , b , area ; a = 3.6 ; b = 1.2 ; area = S(a+b);
您可能关注的文档
- om7虹口区高中信息科技综合练习四.doc
- OK的的策划思维.ppt
- OPEN业务销售手冊——微软内部的资料.doc
- Oilater冷饮店创业的的策划.ppt
- O2O商城的方案.ppt
- OPPO手机品牌广告的的策划的方案.ppt
- Oracle9i 数据库的设计指引全集.doc
- OPTIMIZED 第02讲市场的环境分析与制定年度计划.ppt
- ORACLE 汽车供应商解决的方案.doc
- opv团体训练 自测题一的答案.doc
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
文档评论(0)