打印
[应用相关]

内联函数的特性

[复制链接]
431|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
内联函数的特性:

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

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

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

使用特权

评论回复
沙发
tpgf| | 2024-2-1 08:15 | 只看该作者
请问什么叫做内联函数呢?单片机使用内联函数的情况多吗

使用特权

评论回复
板凳
zljiu| | 2024-2-1 09:18 | 只看该作者
在内联函数内不允许用循环语句和开关语句

使用特权

评论回复
地板
tfqi| | 2024-2-1 21:55 | 只看该作者
内联函数可以访问类的成员变量,宏定义则不能

使用特权

评论回复
5
gwsan| | 2024-2-1 22:29 | 只看该作者
内联函数的定义必须出现在内联函数第一次被调用之前

使用特权

评论回复
6
aoyi| | 2024-2-1 23:01 | 只看该作者
一般函数进行调用时要将程序执行权转到被调用函数中,然后在返回调用他的函数中;而内敛函数在调用时,是将调用表达式用内联函数体来替换

使用特权

评论回复
7
nawu| | 2024-2-1 23:33 | 只看该作者
感觉如果数据量不大的话 完全可以考虑使用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

199

主题

1668

帖子

2

粉丝