码迷,mamicode.com
首页 > 其他好文 > 详细

宏定义和函数的区别

时间:2015-07-30 23:34:56      阅读:191      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!