我正在 VxWorks 上开发一个嵌入式应用程序。
我知道静态函数仅在定义的文件中调用,而非静态函数在源项目的任何文件中调用。
我想知道静态和非静态函数在执行时间和内存方面是否存在差异
绝对没有性能差异。static
关键字对函数所做的唯一事情是赋予它们内部链接,这意味着它们只能在定义它们的文件中访问。
执行时间或运行时内存要求没有差异。
一些(很多?)链接器会发现更容易发现未使用的静态函数并删除它们,因此它们 可能会鼓励更小的代码大小。
这取决于你的编译器。静态函数理论上可以更好地优化,因为编译器会知道它们被调用的所有地方。您应该能够从编译器中获得汇编列表,并自己找出它们是否更有效。