parallel101 / course

高性能并行编程与优化 - 课件
https://space.bilibili.com/263032155
Other
3.62k stars 532 forks source link

请教一个关于static和static inline的问题 #15

Closed LRY89757 closed 2 years ago

LRY89757 commented 2 years ago

小彭老师您好,我想请教一个static和static inline的问题,我网上查询的是如果这两个来修饰函数是几乎没有区别的,一下是我对两者的简单理解:

我在github上阅读的很多开源代码都是在头文件内定义函数的时候都是使用的static inline,我奇怪的一点是如果上面的理解是对的话,为什么还要加static,这样的话岂不是每个引用头文件的源文件都会有一个自己的函数拷贝?不如仅仅使用inline来所有源文件共享一个不是更好吗?或者说使用static inline相比之下还有什么更深的考虑吗?

谢谢小彭老师!

LRY89757 commented 2 years ago

感谢小彭老师给的解答,我这里总结下:

另外关于forceinline的问题,ncnn的NCNNFORCEINLINE是为了统一所有编译器的强制内联: