在我们的项目中,我们有大约50K行的相当大的C文件,用90年代写成.我想根据功能拆分文件.但是,此文件中的所有函数都声明为static.所以,文件作用域.如果我拆分文件,那么file1中的函数不能调用file2中的函数,反之亦然.
但是,My TL感觉可以通过使用静态函数进行内存优化.我写了一些示例代码,以查看不同线程的堆栈是否不同.好像是这样.有人可以请教我静态功能和正常的其他文件范围之间的区别吗?
在C中,在定义函数时,static关键字具有以下两个主要后果:
防止导出函数名称(即函数没有外部链接).因此,防止来自代码的其他部分的链接/直接调用.
由于该函数明确标记为文件的私有,因此编译器可以更好地为函数生成完整的调用图.这可能导致编译器决定自动内联函数以获得更好的性能.