2012-09-28 48 views
4

我正在VxWorks上开发嵌入式应用程序。C中的静态函数和非静态函数之间的差别

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

我不知道是否有静态和非静态函数concening执行时间和有关内存之间的差异

回答

11

绝对没有任何性能上的差异。 static关键字在函数上唯一的作用是给它们内部的linkage,这意味着它们只能在定义的文件中访问。

2

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

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

2

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

+0

运行性能有差异吗?而不是关于编译和链接? – MOHAMED

+0

为什么这会降低投票率? –