最佳实践:存储静态函数声明的位置

时间:2014-01-31 10:35:22

标签: c header

我正在寻找一段时间,却找不到任何提示。

我现在想知道:在C中处理静态函数声明的常用方法是什么?因为静态函数不能从定义函数的模块以外的任何其他模块访问。我不知道在哪里宣布它。

到目前为止,我的想法达到了以下可能性,我可以声明一个静态函数:

  • 将它们放在公共标题中,作为该模块的接口。
  • 将它们放在使用它的.c源文件中。
  • 将它们放在一个单独的头文件中,该文件仅由该特定模块使用。

那里有什么建议吗?

3 个答案:

答案 0 :(得分:6)

将静态函数的声明放在.c源文件中,在该文件中定义和使用它。没有其他模块可以使用它,因此没有其他模块需要包含声明,因此不需要将它放在头文件中。

答案 1 :(得分:0)

这完全取决于您的使用案例。

当我创建一个由多个.c文件使用的接口时,我将这些直接放入也具有typedef,structs的标头中....请记住static函数是未使用的将不会包含在目标文件中。

如果你只在一个编译单元中使用它们,那么没有理由不把它放在那里。

答案 2 :(得分:0)

在C中,如果我使用的是静态函数,我宁愿没有单独的声明。我在使用之前定义了这些函数。这样,我发现代码更容易理解 - 一种从块方法构建的方法。 所以,显然没有标题可以知道它们。