操作员比功能快

Are operators faster than functions?

本文关键字:功能 操作员      更新时间:2023-10-16

在搜索newmalloc的差异时,我遇到了此语句(源(:

新的比malloc((快,因为操作员总是比函数快。

操作员总是比函数快吗?如果是这样,为什么?我真的很喜欢低级解释(您可以假设基本的编译器,SASS和硬件知识(。

新的比malloc((快,因为操作员总是比函数快。

这是完全不真实的。实际上,新表达式的默认行为是内部调用 malloc的典型情况,在这种情况下,它不能更快。

,只要有竞争的程序做同样的事情,就没有理由期望使用彼此使用的性能不同。使用new而不是malloc的原因与性能无关。

运算符比功能快吗?

在运行时调用功能可能比调用函数慢。

但是,正如我们发现的那样,操作员实际上可以在内部调用功能。此外,抽象计算机的功能调用并不一定意味着在运行时将调用函数。只要编译器能够在编译时产生函数的结果,或者如果能够扩展呼叫内联,则无需任何函数呼叫呼叫开销。

因此,这取决于我们正在讨论的功能。就C 函数调用而言:它不一定比使用操作员慢。

另外,请注意,在类类型上操作的所有重载运算符实际上是对操作员过载函数的函数调用。