C 静态函数和内联函数应该在.h文件中定义吗?
当我用C编写软件时,我应该把C 静态函数和内联函数应该在.h文件中定义吗?,c,C,当我用C编写软件时,我应该把静态和内联函数放在.h或.C文件中吗?假设多个C源文件包括.h文件,那么.h文件中的内联函数是可以的,但我不确定你为什么希望.h文件中的静态函数最终被复制,每个C源文件一次。编译器可能足够聪明,不会为C源文件中未调用的静态函数生成代码。不要将静态函数(或变量)的声明或定义放入.h文件中。这违背了保持函数/变量局部的静态 inline是另一个问题-它取决于函数的作用域。.h中的内联函数用于全局使用和范围。.c中的内联函数仅供本地使用。这与#define 内联函数可以是外
静态
和内联
函数放在.h
或.C
文件中吗?假设多个C源文件包括.h文件,那么.h文件中的内联函数是可以的,但我不确定你为什么希望.h文件中的静态函数最终被复制,每个C源文件一次。编译器可能足够聪明,不会为C源文件中未调用的静态函数生成代码。不要将静态
函数(或变量)的声明或定义放入.h
文件中。这违背了保持函数/变量局部的静态
inline
是另一个问题-它取决于函数的作用域。.h
中的内联
函数用于全局使用和范围。.c
中的内联
函数仅供本地使用。这与#define
内联
函数可以是外部
、静态
或未指定。很好地解释了内联范围问题 它们的声明或定义?您不应该将静态
函数放在.h
文件中,因为如果需要,则函数不应该是静态的。如果您通常希望内联函数是静态的,则为True。至少我很少麻烦实例化外部内联定义