[应用相关] 内联函数的特性

[复制链接]
900|6
 楼主| 小夏天的大西瓜 发表于 2024-1-29 14:45 | 显示全部楼层 |阅读模式
内联函数的特性:

inline是一种以空间换时间的做法,省去调用函数中参数压栈,减少了调用的开销。同时,使用内联函数也比宏函数更省心,不必担心宏参数传递过程中出现的意外情况。

inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环/递归等等,编译器优化时会忽略掉内联,另外,如果内联函数的函数体过大,一般的编译器也会放弃内联方式,采用普通调用的方式进行函数调用。

inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找不到。

tpgf 发表于 2024-2-1 08:15 | 显示全部楼层
请问什么叫做内联函数呢?单片机使用内联函数的情况多吗
zljiu 发表于 2024-2-1 09:18 | 显示全部楼层
在内联函数内不允许用循环语句和开关语句
tfqi 发表于 2024-2-1 21:55 | 显示全部楼层
内联函数可以访问类的成员变量,宏定义则不能
gwsan 发表于 2024-2-1 22:29 | 显示全部楼层
内联函数的定义必须出现在内联函数第一次被调用之前
aoyi 发表于 2024-2-1 23:01 | 显示全部楼层
一般函数进行调用时要将程序执行权转到被调用函数中,然后在返回调用他的函数中;而内敛函数在调用时,是将调用表达式用内联函数体来替换
nawu 发表于 2024-2-1 23:33 | 显示全部楼层
感觉如果数据量不大的话 完全可以考虑使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

273

主题

2390

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部