gpt4 book ai didi

c++ - 为什么 C++ 函数调用便宜?

转载 作者:IT老高 更新时间:2023-10-28 12:57:19 25 4
gpt4 key购买 nike

在阅读 Stroustrup 的“The C++ Programming Language”时,我在 p.1 看到了这句话。 108:

“所使用的语法分析风格通常称为递归下降;它是一种流行且直接的自顶向下技术。在诸如 C++ 之类的函数调用相对便宜的语言中,它也很高效。 "

谁能解释一下为什么 C++ 函数调用很便宜?如果可能的话,我会对一般解释感兴趣,即是什么让函数调用在任何语言中都很便宜。

最佳答案

调用 C 或 C++ 函数(特别是当它们不是虚拟函数时)非常便宜,因为它只涉及几条机器指令,以及到已知位置的跳转(带有返回地址的链接)。

在其他一些语言上(例如 Common Lisp,当应用 unknown 可变参数函数时),它可能更复杂。

实际上,您应该进行基准测试:许多最近的处理器是无序的和超标量的,因此“一次做几件事”。

但是,optimizing compilers能出奇招。

对于许多函数式语言,被调用函数通常是 closure ,并且需要一些间接(并且还传递封闭值)。

某些面向对象的语言(如 Smalltalk)在调用选择器(在任意接收器上)时可能涉及搜索方法字典。

解释型语言可能有相当大的函数调用开销。

关于c++ - 为什么 C++ 函数调用便宜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23444113/

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