gpt4 book ai didi

c - C中静态函数和普通函数的区别?

转载 作者:太空狗 更新时间:2023-10-29 15:55:14 30 4
gpt4 key购买 nike

在我们的项目中,我们有大约 50K 行的相当大的 C 文件,是 90 年代编写的。我想根据功能拆分文件。但是,此文件中的所有函数都声明为静态的。所以,文件范围。如果我拆分文件,则 file1 中的函数无法调用 file2 中的函数,反之亦然。

但是,我的 TL 感觉可以通过使用静态函数来优化内存。我写了一些示例代码来查看不同线程的堆栈是否不同。好像是这样。有人能告诉我静态函数和其他文件范围的普通函数之间的区别吗?

最佳答案

在 C 语言中,定义函数时,static 关键字具有以下两个主要结果:

  1. 防止函数名称被导出(即函数没有外部链接)。因此,防止从代码的其他部分链接/直接调用。

  2. 由于该函数明确标记为文件专用,因此编译器可以更好地为该函数生成完整的调用图。这可能会导致编译器决定自动内联函数以获得更好的性能。

关于c - C中静态函数和普通函数的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199937/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com