在我们的项目中,有一个大约有5万行代码量的C文件,是在90年代编写的。我想根据功能将文件拆分,但是该文件中的所有函数都被声明为静态函数,因此只能在文件内使用。如果我将文件拆分,则file1中的函数无法调用file2中的函数,反之亦然。
但是,我的TL认为可以通过使用静态函数进行内存优化。我编写了一些示例代码来查看不同线程的堆栈是否不同。似乎确实如此。请问有人能告诉我静态函数和普通函数以及文件范围之外的函数之间的区别吗?
但是,我的TL认为可以通过使用静态函数进行内存优化。我编写了一些示例代码来查看不同线程的堆栈是否不同。似乎确实如此。请问有人能告诉我静态函数和普通函数以及文件范围之外的函数之间的区别吗?
static
的主要目的是避免名称冲突,而不是任何优化或效率问题。因此,如果您可以为函数名称添加足够唯一的前缀或后缀,那么将它们设置为extern
就可以了。 - aschepler