8

我正在 VxWorks 上开发一个嵌入式应用程序。

我知道静态函数仅在定义的文件中调用,而非静态函数在源项目的任何文件中调用。

我想知道静态和非静态函数在执行时间和内存方面是否存在差异

4

3 回答 3

15

绝对没有性能差异。static关键字对函数所做的唯一事情是赋予它们内部链接,这意味着它们只能在定义它们的文件中访问。

于 2012-09-28T15:06:40.560 回答
3

执行时间或运行时内存要求没有差异。

一些(很多?)链接器会发现更容易发现未使用的静态函数并删除它们,因此它们 可能会鼓励更小的代码大小。

于 2012-09-28T15:07:27.317 回答
3

这取决于你的编译器。静态函数理论上可以更好地优化,因为编译器会知道它们被调用的所有地方。您应该能够从编译器中获得汇编列表,并自己找出它们是否更有效。

于 2012-09-28T15:08:23.527 回答