我已经阅读了许多关于在头文件中定义函数时使用
我的问题是,在 .h 文件中使用
static inline
和 inline
的帖子,这些函数需要跨多个翻译单元进行访问。由于具有外部链接,似乎 inline
是正确的选择。我的问题是,在 .h 文件中使用
inline
限定符定义函数会导致代码大小的增加:
使用
inline
生成的代码扩展是否仍然比使用static inline
生成的代码扩展更小?为什么需要在相应的 .c 文件中声明
extern inline
?
inline
。谨慎并审慎地使用它,如果有疑问,请不要使用。另请参阅C99 中未使用static
或extern
的inline
是否有用? - Jonathan Leffler.c
文件中,纯粹的inline
(以及extern inline
)将是这两个选项中更好的选择。这意味着您正在创建单个逻辑函数,而不是许多函数,正如我在答案中所概述的那样。但是,您应该考虑是否真的需要头文件中的代码。将代码放在.c
文件中更简单,而且您不会冒着强制编译器内联其他可能没有的风险(正如Jonathan指出的那样)。您可以将extern inline
放置的.c
文件也可能是放置定义的逻辑位置。 - Ulfalizerinline
的情况下内联调用来自不同翻译单元(.c
文件)的函数。 - Ulfalizer