您是否将模块特定功能声明为静态?

Evi*_*ach 10 c c++ static function

我认为将它们声明为静态是最佳实践,因为它使它们在模块外部不可见.

你对此有何看法?

Kei*_*thB 26

对于C++,比静态更好的是将它放在一个未命名的(匿名)命名空间中.这是防止全局命名空间污染的首选方法.

namespace {
void myLocalFunction() {
// stuff
}
}
Run Code Online (Sandbox Code Playgroud)


Eva*_*ran 9

如果它真的是一个只在.c文件内部的函数,那么是的.它应该有助于避免污染全局命名空间.此外,我认为如果函数是静态的,编译器能够使用调用约定进行一些优化,因为它知道没有其他源文件需要知道如何调用它.这只适用于c,因为正如其他人所说,c ++有名称空间来解决这个问题.