黑马程序员技术交流社区

标题: 关于宏定义的一个问题 [打印本页]

作者: sajiner2    时间: 2014-12-16 18:52
标题: 关于宏定义的一个问题
在学习【C语言】15-预处理指令1-宏定义时,看到MJ老师的博客里有这么一句:“函数调用在程序运行时执行,而宏替换只在编译预处理阶段进行。所以带参数的宏比函数具有更高的执行效率。”没想明白,为什么宏的效率会更高呢?“[size=13.63636302948px]编译预处理阶段进行”的比“程序运行时执行”的效率都高?


作者: 歧路    时间: 2014-12-16 19:11
看了,感觉也是很不明白啊
作者: 花轮    时间: 2014-12-16 20:34
函数是在程序运行时才会调用,宏是在程序运行前先把他翻译成二进制
作者: zsling    时间: 2014-12-17 12:57
我是这样认为的,采用宏定义则编译的时候已经将参数传递,这样运行的时候直接计算就可以,如果应用函数则运行的时候需要传参数,需要计算。前者的工作时分开的,后者的工作时一起的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2