Chinaunix首页 | 论坛 | 博客
  • 博客访问: 207294
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 824
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-12 21:40
个人简介

只有今天的埋头,才有明天的出头。

文章分类

全部博文(80)

文章存档

2014年(80)

我的朋友

分类: C/C++

2014-10-15 09:25:34

函数跟宏看起来很像


两种程序对应的预编码

定义宏的 


定义函数的,

宏是由预处理直接替换展开的,编译器不知道宏的存在,函数是由编译器直接编译的实体,调用行

为由编译器决定,多次使用宏会导致程序代码量增加,函数是跳转执行的,因此代码量不会增加,

宏的效率比函数高,因为是直接展开,无调用开销,函数调时会创建活动记录,效率不如宏。

宏与函数一较高低


宏的效率比函数高,但是其副作用巨大,容易出错。

函数存在实参到形参的传递,因此无任何副作用,但是函数需要建立活动对象效率受影响。

结果宏还是有无可替代的优势

截图a11-a13

宏编写的_MINT_参数类型可以是intfloat……宏的参数可以是类型名,这点是函数做不到的。

小结:宏能够接受任何类型的参数,高效易错;函数的参数必须是固定类型,低效不易错;宏可以

实现函数不能实现的功能。

 

阅读(1294) | 评论(0) | 转发(0) |
0

上一篇:可变参数

下一篇:函数调用

给主人留下些什么吧!~~