外部与静态函数调用的性能

时间:2013-06-03 18:31:19

标签: c performance static c99 extern

调用extern函数与调用static函数之间的性能通常有差异吗?如果是这样,导致这种差异的原因是 - 这两个调用都不是通过早期绑定以相同的方式(即到特定的机器地址)映射的吗?

1 个答案:

答案 0 :(得分:3)

这是一个实现细节,完全取决于编译器/链接器。在Linux上,在静态链接库中调用静态函数或extern函数本质上是相同的,而在共享库中调用函数会增加间接级别,因此速度会慢一些。

此外,编译器有更多关于静态函数的信息,因此可以进行更多优化,包括可能的内联。