Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4255299
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-26 17:43:11

1.  调用函数时,先将调用函数的地址放入栈 中,函数执行完后再将调用函数的地址从栈中返回给程序,最后回到原调用点;宏展开是使用取代标识直接将宏名取代

2.  每次调用函数都要进行现场保护和现场恢复,因此需要较多的执行时间,单函数调用不会是目标程序变长。而宏展开是在边远时进行的,不占用运行时间,因此宏比一般函数节省了函数调用时间,单每次引用宏都会使目标程序增大一次,并且宏没有类型转换功能,因此使用时需多加注意。

3.  展开有参宏时,直接将实参置换形参。二调用有参函数时,先将实参的值复制一份,然后再将复制的值传递给形参。

4.  在有参宏中,形参是没有类型的,因此实参可以使任何类型。单在有参函数中,形参是有类型的,因此实参的类型必须与形参保持一致。


阅读(729) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~