没有合适的资源?快使用搜索试试~ 我知道了~
#define宏定义使用整理,主要是宏定义的编译过程,##和#的使用。
资源推荐
资源详情
资源评论




格式:plain 资源大小:166.0B


格式:zip 资源大小:11.2KB

























一、宏定义#define
优点:一方面可以节省程序的空间上的篇幅,另外,恰当地使用宏定义可提高程序的时间效率。代码可以
写的通俗易懂。可以提高程序的清晰性、可读性,使于修改移植等。
缺点:宏定义的使用实际上也存在副作用,大量的使用会破坏程序的可读性,并给程序的调试带来麻烦,
是优点也是缺点。过多的宏定义,代码不容易调试,代码进不去宏定义当前所运行的内容。
一般来说,如果一个函数非常大,一般不宜采用宏定义来进行改造,仅仅是那些小的函数,而且非常影响
效率的函数才值得这样去做。
1. 不带参宏定义
例如: #define MAX 1000
(1)宏名一般用大写
(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组
大小常用宏定义
(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
(4)宏定义末尾不加分号;
(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
(6)可以用#undef
命令终止宏定义的作用域
(7)宏定义可以嵌套
(8)字符串" "中永远不包含宏
2.带参的宏定义
例如:#define ADD(x,y) ((x)+(y))
1)实参如果是表达式容易出问题
#define S(r) r*r
area=S(a+b);第一步换为 area=r*r;,第二步被换为 area=a+b*a+b;
正确的宏定义是#define S(r) (r)*(r)
(2)宏名和参数的括号间不能有空格
(3)宏替换只作替换,不做计算,不做表达式求解
(4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存
(5)宏的哑实结合不存在类型,也没有类型转换。
(6)函数只有一个返回值,利用宏则可以设法得到多个值
资源评论


cartzhang
- 粉丝: 617
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2021网站用户注册协议范本.doc
- web课程设计-学位论文.doc
- 数据库系统概论(第四版)课本标准标准答案.doc
- 操作系统专业课-Chapter02Extra完整.pptx
- 2019年网络培训学习总结.doc
- Tableau CRM实战洞察指南
- 上海3g(td-scdma)网络工程建设项目可行性评估报告(203页优秀甲级资质可研报告).doc
- 《数控编程精解》课件.ppt
- 智能网络门禁系统方案设计书实施方案书.doc
- 本科毕业论文---基于单片机的恒流源论文正文.doc
- 互联网+时代农村电商创新发展.pptx
- 算法分析报告与设计方案.doc
- 20XX年计算机协会部长竞选演讲稿.docx
- 专题17电磁波与现代通信三年(2020-2022)中考物理真题分项汇编(原卷版).docx
- 2020年网络广告经验发挥手机媒体优势的论文.doc
- 施工进度网络图(E).xls
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
