打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
static inline内联函数
    今天在看HAL层的头文件的时候,看到static inline int sensors_open,对inline有些不了解,在这记录一下

内联函数有些类似于宏。内联函数的代码会被直接嵌入在它被调用的地方,调用几次就嵌入几次,没有使用call指令。这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,可以加快速度。不过调用次数多的话,会使可执行文件变大,这样会降低速度。相比起宏来说,内核开发者一般更喜欢使用内联函数。因为内联函数没有长度限制,格式限制。编译器还可以检查函数调用方式,以防止其被误用。
static inline的内联函数,一般情况下不会产生函数本身的代码,而是全部被嵌入在被调用的地方。如果不加static,则表示该函数有可能会被其他编译单元所调用,所以一定会产生函数本身的代码。所以加了static,一般可令可执行文件变小。内核里一般见不到只用inline的情况,而都是使用static inline。

inline

关键字inline表明要优化函数的可执行代码,这可以通过将函数的代码合并到调用程序的代码中来实现。Linux内核使用的inline函数大多被定义为static 类型。一个"static inline"函数促使编译程序尝试着将其代码插入到所有调用它的程序中。

这一合并能够免除函数调用的任何开销,#define语句也可以排除额外的函数调用。

另外,使用inline会增加二进制映像的大小,而这会降低访问CPU高速缓存的速度,所以不能在所有的函数定义中使用它。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
函数实现不放在头文件的原因,及何时可以放头文件的情况
C++的头文件和实现文件分别写什么
c语言中的的内联(inline)函数
内联函数:static inline 和 extern inline 的含义
inline 内联函数 执行速度要快
Linux中级“驱动”控制硬件必须学会的底层知识
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服