应该在哪里放置非接口函数原型?

Sha*_*awk 1 c header-files function-prototypes

我反复阅读过头文件应该包含其他文件使用源代码所需的所有声明.假设您有一个不被其他源文件直接使用的函数(换句话说,非接口函数).它的原型应该放在.c文件的顶部,因为它不会被其他文件使用吗?或者它应该放在带有所有其他函数的头文件中,以便在一个地方完全汇总.c文件中的函数?

Att*_*ila 5

标题包含接口信息(外部世界需要使用"模块"中的功能 - 例如.c文件).因此内部函数(不从外部使用)不会进入标题

在.c文件中,它取决于组织

  • 有些人喜欢在顶部列出所有内部函数声明,因此它们位于一个地方.
  • 其他人依赖于排序,所以函数是由它的使用时间定义的(在另一个函数中); 并且只在必要时才转发声明(例如相互调用的递归函数)