本文主要是介绍static inline内联函数剖析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
static inline的内联函数,一般情况下不会产生函数本身的代码,而是全部被嵌入在被调用的地方。如果不加static,则表示该函数有可能会被其他编译单元所调用,所以一定会产生函数本身的代码。所以加了static,一般可令可执行文件变小。内核里一般见不到只用inline的情况,而都是使用static inline。
inline
关键字inline表明要优化函数的可执行代码,这可以通过将函数的代码合并到调用程序的代码中来实现。Linux内核使用的inline函数大多被定义为static 类型。一个"static inline"函数促使编译程序尝试着将其代码插入到所有调用它的程序中。
这一合并能够免除函数调用的任何开销,#define语句也可以排除额外的函数调用。
另外,使用inline会增加二进制映像的大小,而这会降低访问CPU高速缓存的速度,所以不能在所有的函数定义中使用它。
这篇关于static inline内联函数剖析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!