首页 > 其他 > 详细

宏和函数的区别

时间:2015-11-03 00:46:28      阅读:239      评论:0      收藏:0      [点我收藏+]

#define和函数的区别如下:

代码长度:#define每次使用时,宏代码都被插入到程序中,除了非常小的程序外,宏代码将大幅度增长;

函数代码只出现于一个地方,每次使用这个函数时,都调用那个地方的同一份代码

执行速度:#define宏更快;函数存在函数调用/返回的额外开销

操作符优先级:宏参数的求值是在所有周围表达式的上下文环境里,除非他们加上括号,否则邻近操作符的优先级可能会产生不可预料的结果;函数参数只在函数调用时求值一次,它的结果值传递给函数,表达式的求值更容易预测

参数求值参数每次使用宏定义时,它们都将重新求值,由于多次求值具有副作用的参数可能会产生不可预料的结果;

参数在函数调用前只求值一次,在函数中多次使用参数并不会导致多种求值过程,参数的副作用并不会造成任何问题

参数类型:宏与类型无关。只要对参数的操作是合法的,它可以使用任何参数类型;函数的参数是与类型有关的。如果参数的类型不同,就需要使用不同的函数,即使它们执行的任务是相同的







本文出自 “51cto” 博客,请务必保留此出处http://51cccto.blog.51cto.com/10251929/1708993

宏和函数的区别

原文:http://51cccto.blog.51cto.com/10251929/1708993

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