c++ - C/C++ 静态函数与非静态函数对链接时间的影响
问题描述
这些函数通常被声明为非静态的,因为它们可以在其他目标文件中调用。
我只是好奇是否有
- 仅在源文件中定义和使用的几个函数,
- 有许多这种类型的源文件和
- 声明这些函数是静态的而不是非静态的,
它将改善链接时间。如果仅在同一源文件中使用和定义,是否值得将它们设为静态?
解决方案
如果一个函数在单个源文件中定义和使用,它应该始终是静态的,或者在匿名命名空间中定义。这是因为您有违反 ODR 的风险。此外,如果它可以在任何地方内联,这允许编译器从二进制文件中完全删除该函数。这对于非静态函数是不可能的。
关于链接时间,您可能应该对此进行分析。
推荐阅读
- sql - 为什么 PostgreSQL 索引在一段时间后停止使用
- reactjs - TypeError:cars.map 不是函数 - ReactJs
- asp.net-mvc - MVC 操作方法和 Web API 操作方法之间的区别
- swift - 在 SwiftUI 中选择注释时显示覆盖视图
- javascript - 如何通过 refs 在 React 中聚焦输入
- c# - 将 ViewBag 与 @Html.CheckBoxFor 一起使用而不是“普通”
- linux - 在这种情况下如何创建图像?
- esp8266 - 等 2013 年 1 月 8 日,第一个原因:4,引导模式:(1,7) wdt 重置
- windows - 是否可以停止 ANSI 序列中的“powershell”包装输出?
- python - 在具有特定格式的字符串列表中查找最大数