赞
踩
内联函数有些类似于宏。内联函数的代码会被直接嵌入在它被调用的地方,调用几次就嵌入几次,不使用Call指令,如此省去了函数调用时的额外开销,如保存和恢复函数返回地址等,可以加快速度。不过如果调用次数过多,会使执行文件变大,降低速度。
相比于宏,内核开发者一般更喜欢使用内联函数,因为内联函数没有长度限制、格式限制。编译器还可以检查函数调用方式,防止误用。
static inline的内联函数,一般情况不会产生函数本身的代码,而是全部被嵌入到被调用的地方。如果不使用static,则表示该函数有可能会被其他编译单元所调用,所以一定会产生函数本身的代码。加上static,可以使执行文件变小。在内核中,一般见不到只用inline的情况,都是使用static inline 。
缺点:使用inline会增加二进制映像的大小,而降低范文CPU告诉缓存的速度,因此,不能在所有的函数定义中使用它。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。