标签:宏定义和函数的区别
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