【发布时间】:2014-11-25 16:22:29
【问题描述】:
我有一个 TU,其全局功能不会被任何其他 TU 使用。我读到将它们声明为static 会为它们提供内部链接,从优化的角度来看这很好。但我想知道我应该在什么情况下使用它们。当我知道全局函数/变量不会在程序中的其他任何地方使用时,我是否应该总是提供全局函数/变量内部链接?
【问题讨论】:
-
"从优化的角度来看这很好"不。
-
您在此处选择的操作可能会影响编译时间,但在运行时它将是透明的。
-
@Cheersandhth.-Alf 对编译器优化没有帮助?
-
如果它们不是
static并且不在未命名的命名空间中,那么您可能会与另一个执行相同操作的 TU 发生名称冲突,这将默默地导致未定义的行为。