我正在阅读C和C++中的一些源代码文件(主要是C)...我知道'static'关键字的含义是静态函数是只对同一文件中的其他函数可见的函数.在另一个上下文中,我读到了在我们不希望它们被编写到文件之外的情况下使用静态函数的好处...
我正在阅读一个源代码文件,如前所述,我看到所有函数(除了main)都是静态的......因为没有其他附加文件与主源代码.c文件(甚至是标题)链接,逻辑上为什么我应该在所有功能之前放置静态?当只有1个源文件时,它们应该受到什么保护?!
编辑:恕我直言我认为这些关键字只是为了使代码看起来更大更重..
eph*_*ent 16
如果函数是extern(默认),则编译器必须确保它始终可通过其外部可见符号调用.
如果是函数static,则可以为编译器提供更大的灵活性.例如,优化器可以决定内联函数; 使用static,编译器不需要生成额外的外线副本.此外,符号表会更小,也可能加快链接过程.
而且,这只是一个很好的习惯.
很难单独猜测,但我的假设是它是由某人编写的,他认为某些时候可能会添加更多文件(或者这个文件包含在另一个项目中),因此对代码的访问权限最少.功能.基本上将公共API限制在最低限度.