同时使用 __attribute__ ((pure)) 和静态内联是否有任何好处?
Does it provide any benefits to simultaneously use __attribute__ ((pure)) and static inline?
我正在优化一个 c 程序,我想知道在同一个函数声明中使用 __attribute__ ((pure))
和 static inline
是否有意义?
所有三个属性相互正交:
static
表示该函数不在编译单元之外使用,因此不会被导出,也不会污染外部命名空间
inline
增加函数被内联的机会
pure
告诉编译器该函数没有副作用,因此如果内联失败,编译器仍然能够更积极地优化围绕函数调用的代码
所以none个是另一个的替代品,应该同时使用。
我正在优化一个 c 程序,我想知道在同一个函数声明中使用 __attribute__ ((pure))
和 static inline
是否有意义?
所有三个属性相互正交:
static
表示该函数不在编译单元之外使用,因此不会被导出,也不会污染外部命名空间inline
增加函数被内联的机会pure
告诉编译器该函数没有副作用,因此如果内联失败,编译器仍然能够更积极地优化围绕函数调用的代码
所以none个是另一个的替代品,应该同时使用。