调用 extern
函数与调用 static
函数之间通常存在性能差异吗?如果是这样,是什么导致了这种差异——两个调用不是通过早期绑定(bind)以相同的方式映射(即映射到特定的机器地址)吗?
最佳答案
这是一个实现细节,完全取决于编译器/链接器。在 Linux 上,调用静态链接库中的静态函数或 extern 函数本质上是相同的,而调用共享库中的函数会增加一定程度的间接性,因此速度会慢一些。
此外,编译器拥有有关静态函数的更多信息,因此可以进行更多优化,包括潜在的内联。
关于c - 外部函数调用与静态函数调用的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16903434/