在C中始终使用静态函数的函数原型是一个好习惯吗?

时间:2016-07-28 08:44:08

标签: c function-prototypes

我正在看一些C语言的嵌入式固件。我注意到.c文件中使用了静态函数,但没有函数原型。 始终将函数原型放在.c文件顶部附近是一种好习惯吗?是否存在不放功能原型会更好的情况?

3 个答案:

答案 0 :(得分:5)

  

始终将函数原型放在.c文件顶部附近是一个好习惯

没有。如果使用多个调用相同函数的.c文件,最好在.h文件中声明该函数并包含它,而不是在每个调用函数的新.c文件中重新声明它

如果只使用一个文件,并且您不确定是否声明它 - 声明将使您能够在定义之前调用函数,所以我认为这是一个好习惯

  

是否存在不放功能原型会更好的情况?

有些时候你可以在没有原型的情况下进行编译,但总的来说我认为省略它们并不是更好,但我认为我不能说它真的很糟糕

答案 1 :(得分:2)

请注意,将c函数设为静态会将其隐藏到其他翻译单元...

我在.c文件的顶部看到了提供静态函数原型的两个原因:

  • 您需要在定义之前使用该功能。
  • 您希望通过收集所有本地功能来提高可读性。原型位于文件顶部,并提供了概述 可在文件中找到(仅限本地)。

第二个论点可能是有争议的,因为现在有很多方法可以发现/阅读源代码。所以我认为它不应该是练习。你只在需要时才这样做。

答案 2 :(得分:0)

函数原型的主要用途是在头文件中。如果定义相互递归函数,它们也很方便。除了函数原型之外,只会导致不必要的代码(声明)重复。