【发布时间】:2021-09-27 00:22:18
【问题描述】:
static inline __attribute__((always_inline))
如果我在标头中的每个函数定义之前使用它,它会保证内联,并且未使用的函数不会出现在它所包含的翻译单元中吗?
【问题讨论】:
-
有些函数根本不能内联——例如递归的,或者你获取地址的。不过,Clang 应该对此发出警告。
-
但除此之外,这是一种安全的方式吗?
-
在每个函数定义中使用它是个坏主意。并非所有函数都需要内联,内联所有函数都会引入代码膨胀,可能会对性能产生负面影响
-
让编译器决定是否内联。编译器比你聪明(在 99% 的情况下)