首页 > 其他 > 详细

宏定义和函数的区别

时间:2015-07-30 23:34:53      阅读:323      评论:0      收藏:0      [点我收藏+]
1.参数。
   宏定义无类型限制,而函数形参必须定义,即使实现同样的功能。
   eg:#defineMAX(X,Y)    (X)>(Y)?(X):(Y)

2.执行效率

   函数在传参和返回值时没有宏定义直接替换语句效率高。

3.程序长度

   宏定义时写一行调几行代码,而函数则一直调用一个位置,源代码没有变长。

4.副作用

   传j++时返回值发生变化

#defineMAX(X,Y)    (X)>(Y)?(X):(Y)
int a=3;
int b=4;
MAX(a++,b++);
结果为 5.
5.运算符优先级在宏定义中会影响结果(必要时加括号限制)。
6.宏定义不能定义递归。


本文出自 “小止” 博客,请务必保留此出处http://10541556.blog.51cto.com/10531556/1680261

宏定义和函数的区别

原文:http://10541556.blog.51cto.com/10531556/1680261

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!