【发布时间】:2012-09-18 10:07:06
【问题描述】:
可能重复:
Inline functions vs Preprocessor macros
what is concept of Inline function and how it is differ from macro?
inline unsigned int getminutes( unsigned int seconds )
{
return( seconds / 60 );
}
#define GetMinutes(seconds) (seconds) / (60)
说实话,我会问哪个更快,但我在 S.O 上看到的太多了,所以问哪个更好会让我知道。 (是的!我是一名知识猎手)
【问题讨论】:
-
请完全括住表达式宏(不仅仅是宏参数)。这种错误是您可能应该倾向于内联函数的原因之一......
-
你为什么不学习基准测试呢?
-
@netcoder:嗯,他确实问过哪个更好,并说他会问哪个更快,但没有。
-
另一个要考虑的选项是
const unsigned minutes = seconds / 60;。并不是说因素60难以理解(“幻数”)或在程序的生命周期内可能会发生变化。
标签: c++