是否应该在.h文件中定义静态和内联函数?

时间:2015-04-25 17:02:57

标签: c

当我用C编写软件时,我应该将staticinline函数放在.h.c文件中吗?

2 个答案:

答案 0 :(得分:3)

不要将static函数(或变量)的声明和定义放在.h文件中。这违背了static的要点 - 将函数/变量保持在本地。

inline是另一回事 - 它取决于函数的范围。 inline中的.h函数用于全局使用和范围。 inline中的.c函数仅供本地使用。这与用于#define

的策略大致相同

inline个功能可以是externstatic或未指定。 @Christoph很好地解释了inline范围问题。

答案 1 :(得分:1)

假设多个C源文件包含.h文件,那么.h文件中的内联函数是可以的,但我不确定为什么你想在.h文件中使用静态函数,最终被复制,每个C源文件一次。编译器可能足够智能,无法为C源文件中未调用的静态函数生成代码。