当我用C编写软件时,我应该将static
和inline
函数放在.h
或.c
文件中吗?
答案 0 :(得分:3)
不要将static
函数(或变量)的声明和定义放在.h
文件中。这违背了static
的要点 - 将函数/变量保持在本地。
inline
是另一回事 - 它取决于函数的范围。 inline
中的.h
函数用于全局使用和范围。 inline
中的.c
函数仅供本地使用。这与用于#define
inline
个功能可以是extern
,static
或未指定。 @Christoph很好地解释了inline
范围问题。
答案 1 :(得分:1)
假设多个C源文件包含.h文件,那么.h文件中的内联函数是可以的,但我不确定为什么你想在.h文件中使用静态函数,最终被复制,每个C源文件一次。编译器可能足够智能,无法为C源文件中未调用的静态函数生成代码。