gpt4 book ai didi

c++ - 运算符比函数快吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:21 26 4
gpt4 key购买 nike

在搜索 newmalloc 的区别时,我遇到了这个语句(source):

new is faster than malloc() because an operator is always faster than a function.

运算符总是比函数快吗?如果是这样,为什么?我真的很感激低层次的解释(你可以假设基本的编译器、SASS 和硬件知识)。

最佳答案

new is faster than malloc() because an operator is always faster than a function.

这是完全不正确的。事实上,new 表达式的默认行为是在内部调用 malloc 是很典型的,在这种情况下它不可能更快。

只要相互竞争的程序做同样的事情,就没有理由期望使用一个程序会比另一个程序有不同的性能。使用 new 而不是 malloc 的原因与性能无关。

Are operators faster than functions?

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

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

因此,这取决于我们正在讨论的函数调用。就 C++ 函数调用而言:它不一定比使用运算符慢。

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

关于c++ - 运算符比函数快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57245832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com